Git是代码管理的利器,这里介绍一下使用 git 进行团队代码管理的一些步骤。以及关于 github 工作流的一些介绍。
个人原创,版权所有,转载请注明原文出处,并保留原文链接:
http://www.embbnux.com/2014/07/12/git_user_guide/
一、 获取个人私钥和公钥
这部分适用于第一次使用 git 的人,已使用的跳过即可。
linux终端下:
ssh-keygen -t rsa # 然后一直回车,或者设置下本地密码
会在~/.ssh生成id_rsa和id_rsa.pub文件,把pub文件重命名为你的用户名.pub文件发给管理员就可以
mac下也是使用终端:
cd ~/.ssh mkdir key_backup cp id_rsa* key_backup # 如果有旧私钥 rm id_rsa* # 删除旧私钥 ssh-keygen -t rsa -C "youremail"
同样会生成id_rsa.pub文件,把pub文件重命名为你的用户名.pub文件发给管理员就可以
window下:
需要先安装git客户端,下面讲.
二、 安装git客户端
linux下使用:
sudo apt-get install git
mac 一般自带了
window下有很多客户端,这里推荐msysgit发行版,下载完安装
然后启动git bash也是个终端,执行下面的命令:
ssh-keygen -C 'your email' -t rsa
一样会生成pub文件。
三、 使用 git
终端下:
#初始化 git config --global user.name "your username" git config --global user.email youremail #复制代码到本地 git clone [email protected]:embbnux/kails.git #就可以在本地编辑代码了 cd git_project_dir git remote ls # 查看远程仓库 # 添加一个名为 origin 的远程仓库 git remote add origin [email protected]:embbnux/kails.git # 提交代码 git checkout -b new_branch git add README.md git commit -m '你的说明' git push origin new_branch
上面是一个简单的示例,实际使用 git 开发时还需要注意团队协作的问题。
# 提交前合并主分支的代码到本地, 防止和主分支存在冲突 git pull origin master #然后再提交 git add README.md git commit -m '你的说明' git push origin new_branch
四、git 分支
要进行团队开发不能一直在一个分支上提交,master 分支应该作为上线的版本。每个功能在自己的分支上开发,开发测试完后再提交合并到主分支,在 github 上即发起一个 pull request.
git checkout master git branch new_branch #这句话新建了new_branch分支,基于master分支 git branch #查看当前所有分支 git checkout new_branch #切换到新分支 touch new_branch.txt #新建个文件 git add new_branch.txt #添加新文件 git commit -m "new branch txt" #提交到本地仓库,添加log git push origin new_branch #提交到远程仓库分支 # 最后不要自己合并自己的代码,像 github 提交 pull request, 再把 request 发给另一个人 review 完再合并,保证代码质量 git checkout master #切换到主分支 git merge origin new_branch #合并新分支到主分支
四、git 高级
合并 commits:
有时候在你的分支提交了几个 commit 单发现这几个 commit 属于同一个功能,所以就可以考虑合并这几个commits
git rebase -i HEAD~4 # 会打开一个文件, 开头包含了最近4个 commits # 把需要合并的 commit 的开头的 pick 改为 squash,保存退出(esc :wq)即自动合并这几个 commits git push origin new_branch --force # 把改动强推到自己的远程分支 # 修改最后一个 commits 的信息 git commit --amend
撤消操作:
使用 git 的好处是每个操作都有记录,可以很容易的撤消当前操作,回到之前的状态。
# 对于还没 add 的文件更改 git checkout -- file_you_change.txt # 对于已经 add 未 commit 的更改 git reset HEAD file_you_add.txt # 对于已经 commit git reset -f commit_id # commit id 通过 git log 得到