Questions tagged «git»

Git是一个开源的分布式版本控制系统(DVCS)。使用此标签可解决有关Git使用和工作流程的问题。不要仅仅因为存储库恰好托管在GitHub上而使用[github]标签来解决与Git相关的问题。另外,请勿对碰巧涉及Git储存库的一般编程问题使用此标记。

3
如何在git log中显示分支的名称?
如何在输出中显示分支的名称git log? 例如,git log --graph --all我对提交有了一个很好的概述,但是例如,混淆了哪一行是主行,哪一行是我的分支。
215 git 

12
使用git管理变更日志的好方法?
我已经使用Git一段时间了,最​​近我开始使用它来标记我的发行版,以便我可以更轻松地跟踪更改并能够查看每个客户正在运行的版本(不幸的是,当前代码要求每个客户都有自己的PHP网站副本;我正在对此进行更改,但进展缓慢)。 无论如何,我们正在开始建立动力,我认为能够向人们展示自上一版本以来发生了什么变化是非常好的。问题是,我没有维护变更日志,因为我对如何处理它不了解。在这段特定的时间里,我可以浏览日志并手动创建一个日志,但是那样会很累。 我尝试使用谷歌搜索“ git changelog”和“ git manage changelog”,但没有发现任何真正谈论代码更改的工作流程以及与更改日志一致的内容。目前,我们正在关注Rein Henrichs的开发工作流程,我很乐意与此同时进行。 我是否缺少标准方法,还是每个人都在做自己的事情的领域? 非常感谢您的评论/回答!
214 git  github  changelog 

9
如何使用git下载分支?
我有一个托管在GitHub上的项目。我在一台计算机上创建了一个分支,然后使用以下命令将更改推送到GitHub: git push origin branch-name 现在我在另一台计算机上,我想下载该分支。所以我尝试了: git pull origin branch-name ...但是所有这些都是用新分支中的更改覆盖了我的master分支。 我该怎么做才能正确拉出我的远程分支而不覆盖现有分支?
214 git  branch 

11
Git日志仅获取特定分支的提交
我想列出仅属于特定分支的所有提交。 通过以下代码,它列出了分支中的所有提交,还列出了父级(主)的所有提交 git log mybranch 我发现的另一个选择是排除master可以到达的提交,并提供我想要的内容,但是我想避免需要知道其他分支名称的需要。 git log mybranch --not master 我试图使用git for-each-ref,但它也列出了mybranch,因此实际上它排除了所有内容: git log mybranch --not $(git for-each-ref --format '^%(refname:short)' refs/heads/) 更新: 我正在测试前一段时间找到的新选项,直到现在看来这可能正是我想要的: git log --walk-reflogs mybranch 更新(2013-02-13T15:08): --walk-reflogs选项很好,但是我检查了reflog的有效期(默认为90天,gc.reflogExpire)。 我想我找到了想要的答案: git log mybranch --not $(git for-each-ref --format='%(refname)' refs/heads/ | grep -v "refs/heads/mybranch") 我只是从可用分支列表中删除当前分支,并使用该列表从日志中排除该分支。这样,我只能得到mybranch只能达到的提交。
214 git 

9
如何删除git历史记录中的特定修订版?
假设您的git历史记录如下: 1 2 3 4 5 1–5是单独的修订。您需要删除3,同时仍然保留1、2、4和5。如何完成? 如果要删除的修订有数百个,是否有一种有效的方法?
213 git 

4
如何设置一个git项目以使用外部repo子模块?
我想创建一个回购远程回购的回购。 例如,假设jQuery作为子模块: git://github.com/jquery/jquery.git 用jQuery作为子模块创建存储库并添加我自己的外部设备作为远程存储库的过程是什么? 同样,一旦设置完成,如果我推/拉到自己的遥控器,外部设备是否会完好无损?

5
有没有一种方法可以使用GPG密钥在Git中“自动签名”提交?
有没有一种简单的方法可以使Git始终对创建的每个提交或标记进行签名? 我尝试了类似的东西: 别名commit = commit -S 但这并不能解决问题。 我不想安装其他程序来实现此目的。容易做到吗? 只是一个附带的问题,也许不应该对提交进行签名,而只能标记我从未创建过的标签,因为我为Homebrew等项目提交了单个提交。


11
裸仓库和非裸仓库之间的实用区别是什么?
我一直在阅读有关Git中裸机和非裸机/默认存储库的信息。从理论上讲,我还不太了解它们之间的区别,以及为什么我应该“推送”到一个裸仓库。这是交易: 目前,我是唯一在3台不同计算机上从事项目工作的人,但是以后会有更多人参与其中,因此我将Git用于版本控制。我在所有计算机上克隆了裸仓库,当我在其中一台计算机上完成修改时,我提交并将更改推送到裸仓库。根据我的阅读,裸存储库没有“工作树”,因此,如果克隆裸仓库,则不会有“工作树”。 我猜工作树存储了项目中的提交信息,分支等。那不会出现在裸仓库中。因此,对我来说,使用工作树将“提交”提交“回购”似乎更好。 那么,为什么我应该使用裸存储库,为什么不使用?实际区别是什么?我想这对更多的人从事一个项目没有好处。 您从事这种工作的方法是什么?有什么建议吗?
213 git  repository  git-bare 

5
.gitignore到底是什么?
我刚刚创建了一个Github存储库,并且想知道.gitignore文件的用途。我从不创建一个开始,但是由于大多数存储库都有一个而添加了一个。我需要一个吗?我可以/是否会忽略它,或者它有用途?我对此进行了一些研究,但找不到具体的解释。
212 git  github  gitignore 

2
如何一次从所有分支为作者git日志?
我需要获得作者所做的所有提交的报告。到目前为止,我已经有了包含以下命令的脚本: git log --pretty=format:"%ad:%an:%d:%B" --date=short --reverse --all --since=2.months.ago --author=Petr 它工作正常。但是,它仅报告当前分支的操作​​。是否有任何选项可以记录所有分支的作者提交消息,而不仅是当前分支? 换句话说,git是否可以对存储库中的所有提交进行反向排序(按日期时间)序列,并从该序列中提取日志信息? 解决:(从下面的注释复制,否则隐藏) 问题是我有一个存储库和两个克隆,可以同时在两个分支上工作。我确实将更改推送到原始存储库,但是忘记了将更改获取到克隆存储库。这样--all,将其用于克隆的存储库时似乎不起作用。
212 git 

5
通常*需要多少个git sha来唯一标识给定代码库中的更改?
例如,如果要构建一个目录结构,该目录结构为Git存储库中的提交命名了一个目录,并且您希望它足够短以至于不让您流血,但又要足够长以使它碰撞的机会可以忽略不计,通常需要多少SHA子字符串? 假设我要唯一标识此更改:https : //github.com/wycats/handlebars.js/commit/e62999f9ece7d9218b9768a908f8df9c11d7e920 我最多只能使用前四个字符:https : //github.com/wycats/handlebars.js/commit/e629 但是我觉得那会很冒险。但是,假设某个代码库可能在几年内(例如)更改了3万个代码,那么如果我使用8个字符,发生冲突的机会是多少?12吗 是否存在通常被认为可以接受的数字?
212 git  github  sha 

3
更新后如何使Eclipse / EGit识别现有的存储库信息?
在使用EGit插件1.0.0将Eclipse从Helios升级到Indigo之后,我所有的项目似乎都分别丢失了有关git存储库的元数据。 在Helios中,每个Eclipse项目本身都是一个git存储库。当更新为Indigo时,我希望我可以继续使用Helios的工作区。更新后,所有项目仍然存在于工作空间中;在每个项目目录中,仍然存在.git子目录,但是Eclipse似乎将每个项目都视为一个git存储库。 因此,项目文件夹中仍然存在所有git元数据,但是eclipse无法识别它们。还有另一种“重新激活” git功能的方法吗?
211 git  eclipse 

9
我将使用git-worktree做什么?
我在git-worktree上阅读了Github的帖子。他们写: 假设您正在一个名为的分支上的Git存储库中工作feature,当用户报告中存在一个紧急问题时master。首先,您将创建一个具有新分支,的链接工作树,hotfix相对于master […]检出。您可以修复错误,推送修补程序并创建请求请求。 当我在一个名为feature的分支上工作并且报告了master中的一些紧急问题时,我通常会把我正在从事的工作藏起来并创建一个新的分支。完成后,我可以继续工作。这是一个非常简单的模型,多年来我一直在那样工作。 另一方面,使用git-worktree有其自身的局限性: 例如,不允许在两个链接的工作树中同时检出同一分支,因为这将允许在一个工作树中提交的更改使另一个工作树不同步。 为什么要为已经解决的问题选择更复杂的工作流程? 是否有任何事git-worktree无法做,并且证明了这个全新的,复杂的功能?
211 git  git-worktree 

11
如何将Notepad ++(或其他)与msysgit一起使用?
如何在msysgit中使用Notepad ++(或vim以外的其他任何编辑器)? 我尝试了以下所有方法,但均无济于事: git config --global core.editor C:\Program Files\Notepad++\notepad++.exe git config --global core.editor "C:\Program Files\Notepad++\notepad++.exe" git config --global core.editor C:/Program Files/Notepad++/notepad++.exe git config --global core.editor C:\\Program Files\\Notepad++\\notepad++.exe

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.