什么git命令允许我只签出git pull修改的文件?

时间:2018-04-05 22:32:56

标签: git

让我们说我已经在存储库中编辑了50个文件,现在由于我所有的本地更改,它不允许我进行git pull。是否有一个命令或一系列命令可用于允许git pull覆盖它需要的任何本地更改的文件,同时保持其余部分不变?

Git stash将删除太多我的本地更改,并使用git checkout来处理那么多文件会非常繁琐。

3 个答案:

答案 0 :(得分:0)

这是使用git rebase https://git-scm.com/book/en/v2/Git-Branching-Rebasing的完美时间 - 这将完全符合您的要求并将您的内容合并在一起..它可能会给您一些合并冲突,但您可以轻松地再次处理它们GIT中。

 git fetch
 git rebase origin/{yourbranch}

答案 1 :(得分:0)

git pullgit fetch相同,后跟git merge

Git不允许您这样做的原因是因为您有未提交的更改。首先提交这些,然后再试一次。

在相关的说明中,不是将上游合并到您的本地分支(如果您只是git pull会发生这种情况),而是最好改装。在一个单独的分支上工作很方便,并且不时地使用它:

git checkout -b feature

然后:

# (work work work)
git add <stuff>
git commit
# (others add unrelated changes in the branch you branched off of)
git fetch
git rebase origin/master  # (for example)
# (loop)

完成后,您可以简单地合并您的分支。

git checkout master        # (for example)
git pull
git merge --no-ff feature  # (--no-ff is optional)

如果您坚持要在其他人添加新更改的分支上工作而不创建自己的功能分支,则可以使用--rebase git pull选项对其进行rebase而不是创建不必要的合并提交。

man git-pullman git-fetchman git-merge的更多信息。

答案 2 :(得分:0)

git stash是一个很好的解决方案。比你应该做的:

git pull origin someBranch
git stash pop

然后解决可能的冲突(例如“使用我的解析”)。

git checkout --ours -- file/with/conflict/to/resolve