Raz*_*zer 6 git merge git-checkout
我尝试在shell上执行以下命令
git init
echo "test1" > test1.txt
git add test1.txt
git commit -a -m "test1"
echo "test2" >> test1.txt
git branch test
git checkout test
Run Code Online (Sandbox Code Playgroud)
text.txt 现在包含:
test1
test2
Run Code Online (Sandbox Code Playgroud)
结账后分支test所有本地修改从master合并.
为什么?
我期望因为本地更改而git拒绝结帐test.我希望git要求提交或stash本地更改.
编辑:我使用bash脚本来执行此命令.我得到以下输出:
r@r:/tmp/test$ ./createrepo
Initialized empty Git repository in /tmp/test/.git/
[master (root-commit) 0407f5b] test1
1 file changed, 1 insertion(+)
create mode 100644 test1.txt
M test1.txt
Switched to branch 'test'
Run Code Online (Sandbox Code Playgroud)
twa*_*erg 14
git努力不丢失可能有价值的数据.在这种情况下,它实际上并不是合并分支,因为有问题的更改尚未提交.相反,当您执行a时git checkout,它会尝试保留新制作但未提交的修改,因此它会检出您请求的提交,并添加您未提交的更改.如果您确实要放弃未提交的更改,请使用git checkout -f或git checkout后跟git reset --hard HEAD.有时,如果您尚未提交的更改无法合并到您正在检查的内容中,您将收到错误消息并且结帐将失败.
| 归档时间: |
|
| 查看次数: |
9729 次 |
| 最近记录: |