我对Git比较陌生,我在合并一个分支时挂了,我和我的主分支一起创建了一个文件。这是我在终端输入的内容:
chris@chris:~/GasGuruWebApp$ git branch
08cdec3bcd62e683f250f9bb1471312f19d01e40
* master
chris@chris:~/GasGuruWebApp$ git checkout 08cdec3bcd62e683f250f9bb1471312f19d01e40
Switched to branch '08cdec3bcd62e683f250f9bb1471312f19d01e40'
chris@chris:~/GasGuruWebApp$ git add app/views/allcomplications.scala.html
chris@chris:~/GasGuruWebApp$ git commit -am "added complications"
# On branch 08cdec3bcd62e683f250f9bb1471312f19d01e40
nothing to commit, working directory clean
chris@chris:~/GasGuruWebApp$ git push -u origin 08cdec3bcd62e683f250f9bb1471312f19d01e40
host's password:
Branch 08cdec3bcd62e683f250f9bb1471312f19d01e40 set up to track remote branch 08cdec3bcd62e683f250f9bb1471312f19d01e40 from origin.
Everything up-to-date
chris@chris-870Z5E-880Z5E-680Z5E:~/GasGuruWebApp$ git checkout master
Switched to branch 'master'
chris@chris:~/GasGuruWebApp$ git merge 08cdec3bcd62e683f250f9bb1471312f19d01e40
Already up-to-date.
chris@chris:~/GasGuruWebApp$ ls app/views/
complicationform.scala.html index.scala.html interactive.scala.html main.scala.html newvitalsign.scala.html patientmonitor.scala.html vitalsignform.scala.html
正如你所看到的,我认为我在分支'08cdec3bcd62e683f250f9bb1471312f19d01e40'上添加的文件不存在。
非常感谢任何见解。
答案 0 :(得分:3)
08cdec3bcd62e683f250f9bb1471312f19d01e40
通常是指提交,而不是分支。如果此提交是在不同的分支上进行的,请尝试:
git cherry-pick 08cdec3bcd62e683f250f9bb1471312f19d01e40
看起来你可能已经自己命名了一个分支,我建议使用更人性化的名称。
也可以签出旧提交,根据该状态创建分支:
git checkout (hash)
git checkout -b newBranchName
git add (files)
git commit -m "did stuff"
当您需要开始处理旧版本而不涉及最近的提交时,这会更有用。
答案 1 :(得分:1)
您创建了一个也恰好是提交ID的分支:
chris @ chris:〜/ GasGuruWebApp $ git checkout 08cdec3bcd62e683f250f9bb1471312f19d01e40 切换到分支'08cdec3bcd62e683f250f9bb1471312f19d01e40'
但是当你运行git merge 08cdec3bcd62e683f250f9bb1471312f19d01e40
时,它会将其解析为提交ID 08cdec3bcd62e683f250f9bb1471312f19d01e40,然后再将其解析为分支名称。
因此,您收到“已经是最新”的消息,因为您的历史记录中已存在该提交ID。
解决方案是使用与提交ID不重叠的更具描述性的分支名称。