git版本控制:如何处理当前分支为*(no branch)的情况

在使用git branch命令查看当前环境所在的开发分支时,如果出现*(no branch),则表示当前不处于任何分支,这时可以通过如下几种方法处理,以便于后续项目版本的管理:

1:git checkout -b 分支名;此时新创建的分支与*(no branch)软件一样

2:如果想将*(no branch)合并到主分支master,则首先执行git log命令,记住第一行的id号,然后执行git checkout master命令,此时出现的第一行信息中也会出现一个id号,与之前执行git log中第一行出现的id号是一致的,此时就已经切换到了主分支上来了,然后执行git merge id将*(no branch)软件合并到主分支;

如果主分支与*(no branch)软件内容有差异的文件比较多,则建议使用第一种方法,如果有差异的软件不多,则可以使用第二种方法。

 

亦可参考http://serverfault.com/questions/56722/git-seemed-to-be-in-no-branch-and-then-lost-my-changes

# if you have already checked out to master,

# you won't know the commit-ish of your "no branch":

git fsck --lost-found # (to find your )

git merge

# if you are still on your "no branch" commit:

git log # (the commit-ish will be on the first line)

git checkout master

git merge

># or

git log | head -n 1 | cut -d ' ' -f 2 | pbcopy

git checkout master

git merge

你可能感兴趣的:(工具使用)