背景
从九月中旬实习至今,开发中遇到了许多问题,最让我头痛的还是使用git进行协同开发。每次请求合并都战战兢兢,因为这个不仅关系到自己,一不小心还可能删掉别人已经上线的代码(没错,我干了这种蠢事)。每思至此,背脊发凉,特此对常用git操作进行一番总结。
备注:本文不讲原理性操作,只阐述工作中遇到的问题,并提供解决方案,想要了解git工作原理慎读
准备
工欲善其事必先利其器,首先我们要将本地仓库和远程仓库关联起来,分为两步
第一步:
配置个人信息
$ git config --global user.name "Buddhas" $ git config --global user.email "[email protected]"
第二步:
配置ssh
在git命令行敲击 ssh-keygen -t rsa -C "[email protected]",按照提示一步步输入所需要的信息,然后会在c:/Users/xxxx_000/.ssh/找到两个文件,id_rsa.pub和id_rsa。然后登录github,找到Settings→SSH kyes→Add SSH key,将id_rsa.pub内容复制过来,title自定义,到此我们的准备工作就完成了,下面重点谈一下git常用操作和遇到的问题
git常用操作及遇到的问题
由于需要和后台进行协同开发,避免不了需要共用代码,首先添加git源
添加源
git remote add origin [email protected]:chenbin/XXX.git
列出源中所有仓库
git branch -all
拉取别人代码
git clone [email protected]:Buddhas/XXX.git
举个例子,我们有开发分支37131,和测试分支test。
开发完成后提交操作
git add <filename> //提交到暂存区,如果需要全部提交则用.表示 git commit -m "XXX" //把暂存区的所有内容提交到当前分支 git push //将本地分支修改和远程分支同步
在此过程中我出现过的问题
如果想要撤销提交操作
git reset 文件名 表示撤销git add操作 git reset HEAD~1 表示撤销commit操作,保留更改 git reset --hard HEAD~1 表示撤销commit操作,撤销更改
如果不小心在其他分支上写了代码,比如我们的开发分支是37131,而我在test分支上做了修改(没错,我又干过这种蠢事)
git stash //暂存当前内容
git checkout 37131 //切换到开发分支
git stash pop //将暂存的代码保存过来
当我们需要合并分支,首先切换到我们的test分支,然后进行合并
git checkout test
git merge 37131
在此过程中我遇到过的问题
如果需要取消合并
git merge --abort
如果发现test分支被无意修改过,想要同步远端test分支
git fetch -f root test //拉取远程test分支,但不合并
git reset --hard root/test //修改本地test分支指向
如果说我们需要放弃本地修改,其实有两种方法可行
git checkout . //同步暂存区的代码 或者 git fetch --all //同步远端仓库代码 git reset --hard root/test
行文至此