## 安装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:\Users\Administrator\.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. 不要用删除的方式来解决冲突.