我想写一个小的帮助工具,读取当前Git工作目录的一些属性,比如最后一个提交哈希,是否有修改过的文件等等。 我发现使用已安装的Git二进制文件比使用未知格式的压缩文件读取.git目录更容易。 但我的工具必须尽可能便携。 它的目的是.NET应用程序,所以唯一的要求应该是.NET 2.0或更新。 现在我怎么find安装Git的path? 如果用户刚刚点击了Git安装程序,就会使用默认的一个。 但可能会有所不同。 当我在git / bin中看到所有的程序文件时,我真的不希望它在我的%PATH%中(像TortoiseGit这样的其他工具似乎也不需要)。 我还没有在registry中find任何path的线索。 我可以使用什么algorithm来查找Git,这不是一个完整的文件系统扫描? (我已经说过,它需要很快?)
我知道如何在Git分支中恢复较旧的提交,但是如何恢复到标签所指定的分支状态? 我想像这样: git revert -bytag "Version 1.0 Revision 1.5" 这可能吗?
我想为最后2个版本创build一个补丁。 git format-patch -2 给我2个补丁文件,每个版本一个 git format-patch HEAD~2..HEAD 给出同样的事情。 git format-patch -1 HEAD~2..HEAD 给出一个单一的文件,但只包含最后修订版本的变化。 有没有办法做到这一点在混帐?
有没有使用一个subprocess克隆git仓库的Python方式? 我可以使用任何你推荐的模块。
我最近重新devise了一个我正在开发的分支。 树的历史看起来像这样: 1 = 2 = 3 = 4 \ 5 = 6 = 7 \ 8 我想将我的更改(图中的第8个)更改为主分支(现在在图上提交4)。 所以我做了以下几点: git checkout my_branch git rebase master <很多git mergetool / git rebase –skip来解决冲突> 只有当我运行时: git checkout my_branch git diff master 我得到零差异。 我还没有失去我的分支(我仍然可以从我保存的补丁重新创build我的更改),但是我找不到我所做的合并/重新分配。 我做错了什么? 我的变更是否与主人合并,还是必须重新执行?
过去几天我一直在寻找Git的重装。 大多数重新认定的论据说,它清理历史,使其更线性。 如果你做了简单的合并(例如),你会得到一个历史logging,显示历史发生什么时候,什么时候它们被合并在一起。 据我所知,重新设定可以消除所有的历史。 问题是:为什么你不希望回购历史反映代码开发的所有方式,包括它在何处以及如何分歧?
我和几个朋友正在通过github开展一个项目。 我们都在分享同一个分支,这可能是也可能不是一个好主意。 我编辑了一些代码并提交了更改。 我去pusj提交给github(我正在使用Vis。Studio 2013,它是内置的Git工具),但是我得到了这个错误: “有新的远程更改,你必须拉动它们才能推动。” 所以我试图拉远程更改,我得到这个错误: “发生错误详细信息:libgit2。Category = 21(MergeConflict)引发了一个错误,未提交的更改将被merge” 我试图改变分支,以便我可以推动我的变化,然后合并他们与第一个分支,但我得到这个错误: “由于没有提交更改,因此无法切换到主服务器。在切换分支之前提交或撤消更改,有关详细信息,请参见”输出“窗口。 我不知道该怎么做,除了可能将我的更改通过电子邮件发送给我的一个朋友,并让他们推送我的更改。 但是我不知道我的本地提交会发生什么。 编辑 问题解决了。 确保同步所有提交后,我打开git bash,并拉远程提交。 几次尝试后,我回到Visual Studio,发现它已经注册了合并。 我解决了所有冲突的文件,并能够推动项目。 感谢所有回答的人!
当我提交更改时,我当时并不在任何分支上。 我没有真正注意到这个消息,并检查了另一个分支。 我如何检索我的更改? 我无法合并或签出,因为没有合并分支。
每次我尝试推送到GitHub时,Git推动挂起。 我正在使用Cygwin和Windows 7. Git在本地跟踪分支机构,提供状态,设置全局user.name和user.email,并允许提交function良好。 我还是新的,学习。 我inputgit push , git push origin master或者git push -u origin master ,我得到的只是一个空行,要求我用ctl-c来得到提示信息。 ssh-keygen -t rsa -C "me@example.com"问我一个文件名并挂起 git push heroku master挂起 $ git status返回On branch master nothing to commit, working directory clean $ git pull返回Already up to date $ git remote -v返回: heroku git@heroku.com:myherokusite.git (fetch) heroku git@heroku.com:myherokusite.git (push) origin https://github.com/gitusername/appname.git […]
如何从(未签出)远程回购得到最后的标签? 在我的本地副本上使用describe git describe –abbrev=0 –tags 但是我不能用远程存储describe