需要避免的问题
-
同一分支多人开发,避免代码自动合并,生成合并节点;
-
多次重复提交,提交记录不明确;
-
代码合并减少冲突,尽可能在分支合并时不会出现冲突;
推荐的两种提交代码的操作方式:
-
先
pull
, 再commit
, 然后push
提交代码前先pull更新代码,如果有冲突无法更新代码,则先stash
储存改动 -->pull
--> 还原储存 --> 解决冲突 --> 提交代码。 -
先
commit
, 再pull --rebase
, 然后push
代码提交后,push提交前,先使用pull --rebase
进行代码更新,如果冲突则解决冲突 ,然后再依次使用以下方法:rebase --continue
-->commit
-->push
了解git pull
pull
命令实际上是 fetch
和 merge
的批处理命令,意思就是先拉取服务上的更新,然后将本地分支与服务器上分支进行合并, merge
操作不影响有改动未提交的文件。
pull --rebase
: 加上 rebase
参数后,将 merge
操作改为 rebase
操作, 区别是获取到服务器上更新后,本地分支将重置到远程分支,然后将本地未同步的提交重新提交,rebase操作时不允许有未提交的修改!
汇总提交记录
在代码只在本地提交未推送到服务器之前,我们可以有效的改动整合提交记录,避免让大家都看到你的粗心大意。
-
使用
amend
参数
commit后发现有遗漏,需要再次提交时,使用commit -- amend
, 可以将改动添加到上次提交中。 -
使用
rebase
如果有建立个人分支来进行安全备份,需要正式提交时,则可以使用交互式变基rebase -i
来将多次提交的记录整合(squash)后提交到指定分支上。 -
使用
reset
直接使用git reset
可以将分支还原到提交前的节点,这时候所有的改动内容都成了未提交的改动,然后切换到要提交的分支,或者新建分支重新提交就行了。
总结
以上的操作只是些要点,具体可以搜索相关文章去理解清楚了这些操作方式,各种图形工具很多,操作起来更加直观便捷,所以并不建议直接使用命令行,虽然网上大多都是命令行方式的教程,实际上图形工具也只是将这些命令放到菜单里,相关参数只需要你在弹窗上点击勾选,最后也还是去执行的命令进行操作的。
最后提一下git reflog
, 这是个黑匣子,当你不小心删除了某分支,或者reset掉了某提交记录,都是可以在reflog里找到并还原。放心玩吧!