TortoiseGit:"Git Sync"、"Fetch" 和 "Pull" 之间有什么区别?

TortoiseGit: What's the difference between "Git Sync", "Fetch" and "Pull"?

我正在从 TortoiseSvn 转移到 TortoiseGit。但是遇到了一些意想不到的困难。

我的工作范式很简单:

  1. 查看代码
  2. 更改一些代码
  3. 与他人共享代码审查
  4. 提交更改

为什么要使用下面 3 个 syntactically 类似的命令?

PullFetch 甚至共享相同的图标。多么人性化的设计!

这是三个不同的命令:

  1. Git pull 是 git fetch 后跟 git merge - read here
  2. Git fetch 获取有关远程存储库的信息 - read here
  3. Git sync 在一个命令中执行所有操作,意思是 pullpush read here

如果您想比较 gitsvn 的工作流程,那么 git pull 就像 svn update。 git fetch 没有直接的 svn 版本。 Git sync 就像 svn up && svn commit 在一个命令中

您可以随时执行 git 提取以更新 refs/remotes// 下的远程跟踪分支。

git fetch 操作永远不会更改 refs/heads 下您自己的任何本地分支 ,并且无需更改您的工作副本即可安全地进行操作。我什至听说有人 运行 git 在后台的 cron 作业中定期获取数据(尽管我不建议这样做)。

git pull 是使本地分支与其远程 版本保持最新,同时更新其他远程跟踪分支的方法。