我需要做一件简单的事,但我找不到正确的方法......
我和其他开发人员正在云存储库上使用相同的GIT分支。 他添加了一些文件,其代码格式不正确并且在本地提交,但没有推送到云端。
我想通过使用.git
直接连接到他的git pull
文件夹来获取这些文件。
我知道在这个阶段,GIT将为我和一个本地分支创建一个远程分支来保存这些文件。
我无法理解的是:
我可以只提取特定文件吗?
如何将此文件添加到我正在处理的主分支中?编辑它们然后将它们推送到服务器?
答案 0 :(得分:1)
假设您可以连接到他的计算机,并git clone
他的本地存储库,您将需要获取其分支并创建本地跟踪分支。这听起来像你已经覆盖了这一点,但对后人来说:
git remote add <repo> <his_repo_path>
您无法仅提取特定文件。您可以做的是将您的分支版本称为独特的,并且只需要提交您希望最终在服务器上提交的提交:
git fetch <repo> <his_branch>:throwaway ;# this would call your branch 'throwaway'
假设他的历史(即throwaway
的历史)看起来像A-B-C-D-E-F
。如果你只是想提交B
和D
,你可以用樱桃选择它们进入主分支:
git checkout <main_branch> ;# checkout your main branch
git cherry-pick `B`
git cherry-pick `D`
你已经完成了。
还有一个“快速而肮脏”的解决方案我不推荐,因为这是不好的做法,但是如果你真的只需要一个或两个文件就可以完成工作,并且你从没有制作的人那里得到了智能大小的提交:
git checkout -B trashme master ;# or whatever your main branch is
trashme
分支时将它们移动到仓库中。cherry-pick
或git merge trashme
。