我已经看到了各种gitstream相关网站上的多个矛盾的定义。 有没有官方的build议或单一的真相来源? 分支: release/1.2.3或release/v1.2.3 标签: 1.2.3或v1.2.3
如何在不指定提交信息的情况下提交更改? 为什么默认需要?
我对git和版本控制都很陌生,所以我想弄清楚一个补丁是什么,它与我在git中做的其他活动有什么不同? 我什么时候申请补丁? 每次我犯的时候都会发生吗?
在Git中,分支的“删除”是什么意思? 它会从存储库中消失吗? 或者它仍然可以通过git branch导航? 我真正想做的是把一个分支标记为“死胡同”,也就是说,这个分支离主人太远了,没有人会把它当作一个起点,尽pipe这个分支有一些好点子,所以我们喜欢保留,供参考。
我希望能够为脚本做到这一点。 我基本上是在Git中重新创build一些代码的整个版本历史 – 它目前使用不同的版本控制系统。 我需要脚本能够在提交Git的同时保留提交的原作者(和date)。 假设我知道提交作者和更改的date/时间,是否有Git命令,允许我这样做? 我假设有,因为git-p4做了类似的事情。 我只是要求最好的方法来做到这一点。
假设我有台式电脑和笔记本电脑,有时我在台式机上工作,有时我在笔记本电脑上工作。 什么是最简单的方式来回移动git仓库? 我希望git仓库是相同的,这样我就可以继续离开另一台计算机。 我想确保在两台计算机上都有相同的分支和标签。 感谢Johan 注:我知道如何使用SubVersion做到这一点,但我很好奇这将如何与git工作。 如果更容易,我可以使用第三台PC作为经典的服务器,两台PC可以同步。 注意:两台电脑都在运行Linux。 更新 : 所以,让我们尝试一下XANI的想法:在服务器上使用git repo,使用KingCrunch的push命令语法。 在这个例子中有两个客户端和一个服务器。 所以让我们先创build服务器部分。 ssh user@server mkdir -p ~/git_test/workspace cd ~/git_test/workspace git –bare init 那么,从其他计算机之一,我试图得到克隆的副本: git clone user@server:~/git_test/workspace/ Initialized empty Git repository in /home/user/git_test/repo1/workspace/.git/ warning: You appear to have cloned an empty repository. 然后进入该回购并添加一个文件: cd workspace/ echo "test1" > testfile1.txt git add testfile1.txt git commit […]
我创build了一个包含在git仓库中的文件的默认版本。 当有人克隆版本库时,他们得到这个文件的副本是很重要的。 但是,我想设置git,以便稍后忽略此文件的更改。 .gitignore仅适用于未跟踪的文件。 我的动机是这个文件包含特定于计算机的信息。 我想提供默认值,同时允许人们进行本地更改,不会被推回原始存储库,当我们提出新的更改时,创build合并冲突。 我们一般很懒,使用git add . 很多,所以我敢肯定,如果我不能告诉git忽略这个文件,对它的更改将最终被提交和推送。 总而言之, 我想创build一个文件,将其称为default_values.txt添加到我的git存储库,并包含在克隆该存储库时。 git add . 不应该将default_values.txt添加到提交中。 这个行为应该被传递给仓库的任何克隆。
如何使用git filter-branch删除没有变更集的提交? 我重写了我的git历史使用: git filter-branch –tree-filter 'rm -r -f my_folder' -f HEAD 这工作得很好,但现在我有很多提交与空的变更。 我想删除这些提交。 最好在msysgit。 重新激活并不是一个真正的select,因为我有超过4000个提交,其中一半必须删除。
我在我的主git仓库中有一个git子模块。 据我了解,主回购存储一个SHA值(某处…),指向子模块的“链接到”的具体提交。 我进入我的子模块并inputgit checkout some_other_branch 。 我不知道我来自哪个承诺。 我想恢复该指针,以便主repo和子模块再次同步。 我的第一个(可能是天真的)本能就是说git reset –hard – 这似乎适用于其他任何事情。 令我惊讶的是,这并不适用于这种情况。 所以我想通了,我可以inputgit diff ,记下子模块指针所使用的SHA ID,然后进入子模块和git checkout [SHA ID] …但是肯定有一个更简单的方法吗? 由于我还在学习git submodules,如果有我不知道的概念的话,请随时纠正我的术语。
从function上讲,在分散的工作stream程中,我看不到push.defaultconfiguration设置的simple和current选项之间的区别。 current会将当前分支推送到指定远程的同名分支。 对于当前分支的跟踪和任何未跟踪的远程(在两种情况下它强制执行相同的分支名称), simple也会有效地做同样的事情。 有人可以解释我所缺less的分散工作stream程之间的重要区别吗?