我很好,我忘记了如何GIT。我意外地从我的分支中删除了所有未跟踪的文件,唯一的方法是再次克隆repo。在用master分支完全清理repo后,我开始创建新的分支......
...但正如我所提到的,我可能忘记了如何GIT。
我正在通过
创建分支git checkout HEAD~1 -b personal/$USER/featureX2
然后
git pull origin master
在该分支上的脚本中做了一些更改并将它们保存在eclipse中(然后你在git status中看到了应该添加到提交的红色字体),我不能在没有提交的情况下结账回主人它。但...
我在没有问题的情况下结帐,更多的是,在我看到的git状态下,未保存的更改也在主分支上。
我做错了什么?或者,如果我不能在不做出改变的情况下结账到另一个分支机构?
答案 0 :(得分:1)
实际上,当大部分时间没有进行更改时,允许从一个分支机构检出另一个分支机构,但可能存在冲突。 如果你成功,那么因为你的工作目录不干净,你可以看到每个分支的变化 一旦在一个分支上提交它们,您将只看到该分支上的更改〜
答案 1 :(得分:0)
Git的行为符合预期。 Git不跟踪Untracked文件(红色字体......)。因此,在尝试签出master
时,它会阻止因为相同的文件/行(冲突)中可能已更改。
从checkout
执行one branch to another
时,未跟踪的文件会随之而来。
您可以commit
更改save
未跟踪的文件(stash
)。
$ git checkout branch-1
# do some changes here
$ git add .
$ git stash save 'my-temporary-change' # stash -> save the changes in temporary box
# now untracked files are gone and save to stash stack
$ git checkout master
# if you need to take the temporary changes, just by 'stash pop' you can get them back in any branch
$ git stash list # see all stash stack list
$ git stash pop # pop the last one from stash stack, pop = apply + drop