git 本地与远程都有的修改是先 fetch merge 远程修改,还是先 commit 本地修改

git 本地与远程都有的修改

是先 fetch merge 远程修改,

还是先 commit 本地修改

阅读 8.2k
5 个回答

先 commit ,这是 git 的优势,你可以随时 commit,完成一个方法,一个节点,都 commit 一下,以后需要回退时也更加方便,代码更加具有版本性,且一定程度上可以减少因误操作带来的代码丢失。

否则对于新手在解决冲突阶段导致本地代码丢失是新手比较容易犯的错误。

建议:

  1. 本地提交: git commit
  2. 拉远程: git pull --rebase

我的理解,你是想先同步远程的提交,然后再创建自己的提交,但是工作目录又有改动。

第一步,先将本地修改缓存起来:git stash,然后发现本地修改清空了,别慌!

第二步,git pull 拉取远程代码并合并。

第三步,git stash pop 将刚才缓存起来的修改还原,然后提交即可!

用类似Git的DVCS要一直在脑子里想着Git本质上是一个分布式的文件系统,remote是恰好逻辑上与你的local有了关联(track)。每个Git仓库都维护着自己的DAG。所以要做什么, 比如大家说的先stash还是先commit,都是按需。只要你习惯了看与用Git的非线性的commit. 我的经验是尊重事实上时空上发生的commit是最不容易出问题的。不用为了干净而刻意的做过多rebase类的 rewrite history的操作,往往写错了commit message之类的amend一下就好.

  1. git commit
  2. git fetch
  3. git merge/rebase [specify_branch]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进