【问题标题】:Git pull, what happens in real life?Git pull,现实生活中会发生什么?
【发布时间】:2018-03-02 10:43:53
【问题描述】:

好的,我是新手。 如果有一个远程 repo 并且我已经在我的 mac 上克隆了它,当我 git pull 并且其他人对 master 进行了更改时,我的更改会被覆盖吗?

遵循什么规则? 在我目前的经验中,我没有修改过的文件会被覆盖,但我没有任何经验知道如果我修改过的文件和其他人修改过的文件发生冲突会发生什么。我会被要求做出决定还是会被覆盖?

谢谢

【问题讨论】:

    标签: xcode git


    【解决方案1】:

    如果发生拉取冲突,您将有机会选择是否丢失自己的更改。这里展示了如何解决它 (How to resolve merge conflicts in Git?)。但当然,您必须就此与团队进行沟通。

    最好避免这种冲突。在团队中工作时,使用branches 会有所帮助。这是一个很好的见解:http://nvie.com/posts/a-successful-git-branching-model/

    【讨论】:

    • 我不明白。根据我的经验,我从来没有被要求选择。我的文件会自动更新。如果我不想接受 master 的更改怎么办?
    • 如果你不想从主人那里改变,你为什么要拉到第一位?
    • @GeorgeAsda 这里提到你可能想要设置的mergetoolstackoverflow.com/questions/1435754/… 请注意,git pullgit fetch 加上 git merge
    • 因为我不知道我是否想要它们。我得先看看。有选择也不错。
    • @GeorgeAsda 那么你需要的是git fetch。通过git fetch,您可以将其他人的提交提交到您的仓库,而无需将它们合并到您的分支。您可以检查这些提交并决定是否要合并它们。您可以通过git mergegit cherry-pickgit rebase 选择将这些提交中的一部分或全部“合并”到您的分支中。
    【解决方案2】:

    如果有一个远程仓库并且我已经在我的 mac 上克隆了它,当我 git pull 和其他人已经对 master 进行了更改,将我的更改 被覆盖?

    是的,如果您执行 git pull,这些更改将被添加(集成)到您当前分支的本地副本中。

    git pull 是做什么的,你可能会找到很多关于它的信息? 保持简短。这会将远程仓库中的更改添加或合并到您的当前分支。

    git pull = git fetch + git merge FETCH_HEAD
    

    遵循什么规则?在我目前没有的经验文件中 修改被覆盖,但我对什么没有任何经验 如果我修改过的文件和其他人修改过的文件会发生 有冲突。我会被要求做出决定还是会 覆盖?

    回答第二个问题。当您执行 git pull 时,您当前的分支不是最新的 origin/master,它将获取并添加所有更改。如果您查看文件之间是否存在冲突,您可以使用几个 GUI 工具来解决。例如,vimdiffkdiff3melddiffuse 等等,您可以在 mergetool 配置中进行配置。

    How to resolve git merge conflicts in cli?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-03
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2011-08-15
      • 2017-01-31
      相关资源
      最近更新 更多