工作中用到git比较多,对一些比较常规对操作做一个记录。
分支相关
- 若仓库里新建了分支,本地更新分支:git fetch
- 切换分支/新建分支:git checkout xx/git checkout -b xxxx
在现有分支上新建分支,是从现有分支延伸出去的分支,所以若多人开发同一项目,可以在切换到仓库的开发分支后在本地新切一个分支,避免在仓库分支上开发与别人造成冲突。
提交相关
- 若直接在仓库的分支开发提交,则直接提交即可:git add . git commit -m "提交内容" git push
- 若多人共同开发,为避免提交冲突,会在本地新建分支进行单独开发,在这个情况下提交的话有多种方法,我仅记录我自己常用操作,比较方便易懂:
1、在本地分支a提交,见上一条操作,不需要git push,同时git log查询提交的序号,记住前四位。
2、切换到仓库的开发分支,git pull,git cherry-pick xxxx(第一个步骤查询到的前四位序号)。
3、提交:git push。
4、若开发还未完成需要继续开发:删除本地分支a,从仓库开发分支新建本地分支。
5、这个流程需要一个删除新建分支的步骤,但是相比较于其他流程而言我个人比较倾向于这个。
- 多次commit提交,为了提交过程干净清爽需要合并,为了安全起见可以在本地分支先合并,再由仓库开发分支cherry-pick过来,具体流程:
1、git rebase -i HEAD~3(合并最近3条)/git rebase -i [startpoint] [endpoint] 前开后闭区间,个人比较喜欢HEAD方法,因为如果有比较乱的提交了,及时处理比日后堆起来处理更好。
2、进入rebase界面之后与终端操作文档相同,按i进入编辑界面,除了第一条保留pick外,后续几条统一改为s,按esc退出编辑界面,wq保存。
3、进入编辑提交记录界面,第一条可以修改提交的内容,也就是commit的时候写的提交内容,后面几条状态为s的记录可以按两下d删除,退出编辑,wq保存。
4、rebase之后提交一般需要git push -f强制提交。
5、git log 可以看到提交记录已合并。
其他内容等后续使用了继续更新。