Git SHA ID看起来像这个351e11dac558a764ba83f89c6598151d2dbaf904,它是一个长十六进制数.但是如何在文本中检测到它呢?搜索仅包含0-9,af且长度至少为20个字符的"单词"?但是如何区分SHA ID和普通词?
我想获得某个远程Git存储库上的最新提交列表.但是,我不想创建克隆,因为这需要太长时间.
使用SVN,我可以简单地传递用户名和密码.有了Git我没有找到这样做的选项.另外,是否有像SVN一样的XML输出选项?
我做了一个早期提交的结帐:
git checkout 12345
Run Code Online (Sandbox Code Playgroud)
然后回到最后一次提交:
git checkout 56789
Run Code Online (Sandbox Code Playgroud)
然后继续承诺,我是:
目前不在任何分支机构.
也许,我应该做的:
git checkout master
Run Code Online (Sandbox Code Playgroud)
在第一次结账后,而不是指向提交ID.
仍然,任何想法如何让我的最新提交进入主分支(这是一些提交落后)?
谢谢
有没有办法获得特定Git提交的文件SHA?
有两个命令可以:
git show COMMIT_VERSION:myfile.txt > ~/tmp/myfile.txtgit hash-object ./tmp/myfile.txt但是,也许在Git中有特定的命令可以做到这一点?
关于如何压缩git和其他DVCS的提交,也有很多问题,例如:
我的问题是,我想要压缩提交吗?我应该保留详细的提交顺序,显示功能是如何开发的,还是我应该在功能完成后将它们压缩成一个,以保持历史更清晰?
我想在不影响同一主题分支中的其他提交的情况下将单个提交推送到Gerrit.不幸的是,我没有Gerrit的测试实例来进行实验.
场景: 我已经为项目提供了一个主题分支,正在审核中,其他开发人员已经更新了部分内容.现在我希望在更新之后进行更改.
为此,我在我想编辑的提交中由其他开发人员提取更改,在本地执行交互式rebase以进行我自己的更改,然后推送到Gerrit,确保Change-Id仍然相同.这会将新版本的文件添加到补丁集中以供审阅.
问题: 当我尝试将单个提交推送到Gerrit时,主题分支中的其他提交也被推送,覆盖其他开发人员的更改.
这是我使用的语法:
git push gerrit 3089c9f56542461dce738a9aa17bb743ed36e038:refs/publish/master/my-topic-branch
Run Code Online (Sandbox Code Playgroud)
我假设由于Gerrit创建的依赖项,主题分支中的其他提交也被推送.
这种方法是否会起作用,省略主题分支标题?:
git push gerrit 3089c9f56542461dce738a9aa17bb743ed36e038:refs/publish/master
Run Code Online (Sandbox Code Playgroud)
我之前成功尝试过此方法,推送到特定的变更集:
git push gerrit a95cc0dcd7a8fd3e70b1243aa466a96de08ae731:refs/changes/12345
Run Code Online (Sandbox Code Playgroud)
但是,在再次尝试这个时,我现在得到一个解包错误:
error: unpack failed: error Missing tree 9172313b907b160d15e260d5f7d51689f467b858
Run Code Online (Sandbox Code Playgroud)
相关问题: 当我从Gerrit中提取其他开发人员的更改时,如何确保我已经提取了主题分支中提供的所有文件?如果我在主题分支中选择Gerrit中最顶端的更改,并使用web ui中所述的pull命令,则主题分支中的某些文件似乎在本地更新,但不是全部.我是否需要遍历topic-branch中的每个提交并发出相关的pull命令?
我试着寻找一个答案,但没有发现任何匹配这个问题.如果已有答案,请随时将我链接到答案.
我所做的是提交并推送大量更改作为一次提交.虽然我没有把那个推入合并到主人.我现在想在上演任何内容之前回到状态,所以我可以将更改分阶段提交.
我尝试使用推送的更改创建一个新分支(已保存的工作),删除原始远程分支(用户登录),然后将新分支合并到原始本地分支,但这只是让我回到我所在的位置现在,用户登录分支不包含任何要添加/提交的内容.
那么我如何获得所有这些更改,以便我可以单独审核和分阶段(使用git add -p)?
我正在使用CornerStone(v2.7.10)与SVN合作.我不知道为什么,但今天我不能再将任何文件提交到存储库,但更新工作副本仍然很好.我试图取消提交活动但是花了这么长时间,所以我决定退出应用程序.
然后我重新打开CornerStone并尝试再次提交文件,它会:
Description : The working copy is locked due to a previous error.
Suggestion : Clean the working copy and then retry the operation.
Technical Information
=====================
Error : V4WorkingCopyLockedError
Exception : ZSVNWorkingCopyLockedException
Causal Information
==================
Description : Working copy '/Users/mac/Documents/Sites/evashop.dev/evashopdevrepo' locked
Status : 155004
File : subversion/libsvn_wc/lock.c, 367
Run Code Online (Sandbox Code Playgroud)
我试图清理工作副本,仍然无法提交文件.
我该如何解决?
提前致谢!
所以我对Git和DVCS一般都是新手,而且我到处都在阅读,至少在私人分支机构,"总是很好地承诺所有的时间".问题是:为什么?我正在使用SourceTree(带有图形界面的Git客户端),一旦一切正常并且我已经完成,我发现它更容易(暂存然后)提交我的代码,因为我仍然可以在提交之前在SourceTree中看到我的差异.
那么经常提交的原因是什么?我应该多久做一次?
我只是在试验GitHub.为什么有些提交被显示为"一天前在GitHub上提交"而其他提交为"一天前提交"?