任何人都可以告诉我如何克隆第一次提交?我不想删除最近的提交,只需制作初始状态的克隆副本,以便我可以获取一些文件。Git:如何克隆第一次提交?
回答
要回答我想你的意思是问这样的问题:
你可以得到你的整个仓库进的状态首先与承诺:
git checkout <commit SHA1>
大功告成瞎搞后,可以做git checkout master
回到原来的位置。
而且你可以从第一个获得单独的文件到他们的状态与承诺:
git checkout <commit SHA1> <file or directory> ...
同样,大功告成后,你可以做git checkout master <file or directory>
要回原来的位置。
有没有必要“克隆”一个提交(我认为你的意思是克隆存储库,并检查第一次提交?)。当然,如果由于某种原因你无法忍受修改仓库中的任何文件(例如,不想让你的版本过时),你当然可以克隆它,然后在克隆的回购中做同样的事情。
我认为你所需要做的就是从你想要的原始提交中创建一个新的分支,检查出来,然后合并回你正在工作的分支的头部。
如果abcxyz ......是的,你要和你的主分支工作提交SHA1,这通常是你想要做什么:
git branch oldskool abcxyz... # creates a new branch called oldskool from the commit
git checkout oldskool
#make changes
git rebase master #bring the oldskool branch up to the HEAD of the master branch (shouldn't overwrite the changes in the files you edited)
git checkout master
git merge oldskool
你正在创建master的祖先,所以rebase只是快速转发它,然后合并是一个no-op。没有改变主人。如果你跳过rebase,合并也将是一个快进,并且再次,不改变主人。 – Cascabel 2010-06-22 15:00:51
我觉得我要做同样的事。检出初始提交,并从那里分支。我不确定接受的答案。但我想它可以(部分)满足原始问题。阅读此线程后,我无论如何都与一些的bash脚本四处
git log --pretty=oneline master | tail -1
我猜我希望会有一些这方面的commit-或树十岁上下的参考。
因此,你可以检出先用下面的命令提交:
git checkout `git log --pretty=oneline | tail -1 | sed 's/ .*$//'`
2017年更新:由于'12(GIT 1.8.1),我们有一个更好的选择:git rev-list。请参阅此处的其他答案或KyleMit at superuser以获得更好的脚本编写方法。
如果您使用'git rev-list --all'而不是'git log --pretty = oneline master',那么您不必解析提交消息,因为它只返回shas。看到我的回答[使用git,我该如何回到第一次提交](http://superuser.com/a/773366/180163) – KyleMit 2014-06-25 15:54:50
如果通过“第一次提交”,你的意思是没有任何父母本身的分支的父提交,那么你想使用git-rev-list来做到这一点。只需使用
git rev-list --max-parents=0 HEAD
这将让你的“初始提交”当前HEAD。如果列出,或使用其他任何子版本规范,请使用主文件。包裹在$(...)
为了使用表达式中的,如:
git checkout $(git rev-list --max-parents=0 HEAD)
谢谢,这是覆盖一般情况没有中间复制/粘贴步骤。 – 2014-03-23 17:00:11
谢谢修复杰西! – 2014-03-31 20:46:06
- 1. 我如何git rebase第一次提交?
- 2. 查询最后一次提交的git仓库没有克隆
- 3. git提交后,覆盖克隆版本
- 4. 本地保留提交克隆Git
- 5. 第一次提交Git结账
- 6. 在git中分裂第一次提交
- 7. 从Git多次克隆
- 8. 如何克隆一个克隆的git回购
- 9. 如何克隆git扩展?
- 10. 如何更新git克隆
- 11. Git的 - 如何找到第一次提交特定分支
- 12. Git - 如何获得给定日期的第一次提交sha1
- 13. 如何获得第一次提交的Git diff?
- 14. 如何跳到git中的第一次提交?
- 15. Git:如何通过一次提交恢复一系列提交
- 16. 如何在git中一次提交一系列提交?
- 17. jquery第一次克隆div,停止用户克隆6次以上
- 18. 如何与git克隆一个分支
- 19. 如何一个Git克隆装入QtCreator
- 20. 提交时出现多表单克隆问题。提交第一个输入组
- 21. git rebase一次提交
- 22. Git和克隆
- 23. * git svn克隆*
- 24. 使用git克隆git不能克隆回购:// ... - 使用git克隆http://
- 25. 如何在一次提交中提交SVN和GIT?
- 26. GIT克隆和第一个GIT推送问题
- 27. 如何克隆()一个元素n次?
- 28. jenkins git插件每次都克隆
- 29. git svn克隆结果无法克隆
- 30. git rebase第二次和第三次提交
一个Git仓库可以有多个“第一提交” – knittl 2010-06-22 12:14:00
好了,你们这些家伙,不要对第一这样的臭承诺的事情。总是有至少一个根提交,并且存在多个提交是非常罕见的,特别是在用户的存储库中提出这样的基本问题。 – Cascabel 2010-06-22 13:39:48