git安装配置和使用

## 安装git服务器

## 安装git

sudo apt-get install git

## 建立git用户

sudo adduser git

## 修改git用户

* 设置不能登录

vim /etc/passwd
找到git:x:1001:1001:,,,:/home/git:/bin/bash
修改为git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

* 建立配置

sudo mkdir /home/git/.ssh
sudo touch /home/git/.ssh/authorized_keys

* 添加自己电脑(开发用的虚拟机
*
*
*
* )的rsa签名(见下面说明)
id_rsa_pub在C:UsersAdministrator.ssh
sudo cat id_rsa.pub >> /home/git/.ssh/authorized_keys


* 修改权限

sudo chown -R git:git /home/git/.ssh
sudo chmod 600 /home/git/.ssh/authorized_keys

## 配置git服务器


* 建立服务器目录

sudo mkdir /home/git/gitcode
cd gitcode
sudo git init --bare b2b2c.git

* 修改权限

sudo chown -R git:git /home/git/gitcode

## 本地的一些操作。

* 生成rsa签名(结合上面的导入到authorized_keys)中(位于 ~/.ssh/id_rsa.pub)

//ssh-keygen -t rsa

* clone项目

git clone git@172.168.4.192:gitcode/b2b2c.git
git clone git@202.104.122.154:gitcode/b2b2c.git
ssh://git@447167.cicp.net:43352/~/gitcode/b2b2c.git
ssh://git@202.104.122.154/~/gitcode/b2b2c.git


## git 的一些基本操作

git add {{file || *}}

git rm {{file || * }}

git commit -m "{{commit message}}"

git pull origin/master

git push origin/master

# GIT 入门(不涉及分支功能)

## 第一步安装

> windows

####使用gitbash


百度搜索gitbash 并且安装。使用和linux 完全一致

####使用小乌龟git 或者github客户端

百度搜索即可安装

> linux

sudo apt-get install git

## 第二部分配置

> gitbash 和 linux 一样


git config --global user.name {{you name}}
git config --global user.email {{you email}}

> 小乌龟git

目前不清楚怎么配置

##第三部分配置远程仓库

#### 生成ssh key

> gitbash

ssh-keygen -t rsa -C "yangyao@ttyun.com(yangyao)"

> 小乌龟git 步骤比较复杂

先使用gitbash生成ssh key
然后使用PuTTY Key Generator 生成小乌龟专用的 putty key
参考文章http://www.7down.com/article/86528.html

### 将生成的公钥交给运维

## 第四部分git的基本操作

> clone代码

git clone git@172.168.6.15:code.api.ttyun.com

> 查看文件状态

git status

>添加单个文件到暂存区

git add {{filename}}

> 添加多个文件,使用空格隔开

git add {{file1}} {{file2}}

> 添加目录下面的所有文件

git add custom/*

> 从git仓库中删除文件 (目录也是和添加一样的方式)

git rm {{filename}}

> 将代码commit到本地

git commit -m "a simple message"

> 拉取远程代码

git pull origin master

> 推送代码到远程

git push origin master

## 高级功能

>查看提交日志

git log

>查看某个文件的更新记录(恢复文件很有效)

git log -p {{filename}}

> 撤销add的修改

git checkout {{filename}}

> 撤销本地commit的修改

git log // 查询commit id
git reset {{commit id}}

> 只撤销commit中的一个文件

git log -p {{filename}} //查询commit id
git reset {{commit id}} {{filename}}

> 不小心删除了未加入暂存区的文件或者目录

git checkout {{filename}}

## Q & A

(1)GIT pull 不到代码

执行git status 看本地是否有未解决的冲突

(2)pull的时候pull到了很多代码,并且打开了一个 vim窗口

直接 :wq 退出

(3)pull代码出现冲突

敲命令 git mergetool打开vim窗口进行合并

(4)提示冲突 但是 gitmergetool提示没有可以合并的冲突

说明有没有提交的文件和git有冲突
先commit冲突的文件,然后再pull 最后进行冲突的修改

(5)修改完冲突之后,git status 有很多文件怎么办?

直接执行 git commit 不带任何参数

(6).gitignore文件的作用是什么。

.gitignore文件可以把某些目录或者文件排除在git仓库之外,一个项目最好只维护一个.gitignore文件。
如果有人修改这个文件,必须把发送文件给每个开发者。

(7)如果想把某个目录加到git仓库,但是里面的文件不放在仓库管理怎么办?

在该目录下添加一个.gitkeep的文件

## git团队开发中需要注意的一些问题。

1. 不要擅自解决冲突,遇到冲突一定要找到当事人。
2. 修改了.gitinore文件 需要发送给每一个人
3. 在push前一定要先pull一下,pull成功了再push
4. 除非是合并提交,非自己修改的文件不要提交到仓库
5. 不要用删除的方式来解决冲突.

原文地址:https://www.cnblogs.com/herry52/p/5976233.html