我在本地大师身上做了很多工作,我决定需要一个新的分支。
我在工作的机器上创建了一个分支diffraction
并推送它:
$ git checkout -b diffraction
$ git push
然后我去了另一台机器并拿走了:
$ git fetch
...
* [new branch] diffraction -> origin/diffraction
...
$ git merge origin/master
Already up-to-date.
$ git merge origin/diffraction
Merge made by the 'recursive' strategy.
.gitignore | 4 +-
Makefile | 11 +
...
9 files changed, 8225 insertions(+), 24 deletions(-)
create mode 100644
...
$ git branch
atmosphere
* master
rollback
没有diffraction
分支。另外,我只是将原点/衍射物品拉到当地的主人,而不是获得一个新的分支并在其中检出。我以为这是圆顶自动。
如何从本地主人退出更改(已提交但未推送)?我希望它始终指向origin / master。
我如何将原点/衍射提取到局部衍射?可能会自动指向那里。
答案 0 :(得分:2)
当你做git merge origin/diffraction
时,你告诉Git将'origin / diffraction'合并到你当前的分支中。你想要的是告诉Git根据'origin / diffraction'创建一个新的本地分支。
这是通过git checkout -b diffraction origin/diffraction
完成的,甚至更简单:
git checkout diffraction
如果你想撤消你错误做的合并,你可以这样做:
git reset --hard @^
将当前主分支的指针重置为上一次提交,您可能希望使用git show @^
检查上一次提交是否是您想要的提交。否则,您需要将'@ ^'替换为要重置为的提交的SHA-1。
答案 1 :(得分:1)
设置
git clone https://github.com/svnpenn2/foo foo-1
git clone https://github.com/svnpenn2/foo foo-2
cd foo-1
set $RANDOM
echo $1 > README.md
git commit -am $1
git checkout -b diffraction
git push origin diffraction
cd ../foo-2
git fetch
git merge origin/diffraction
问题
$ git branch
* master
解决方案
$ git checkout diffraction
Branch diffraction set up to track remote branch diffraction from origin.
Switched to a new branch 'diffraction'
$ git branch
* diffraction
master