Questions tagged «git»

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

6
从Git删除旧的远程分支
当我在Git中使用bash自动补全功能时,它会不断向我显示我不再拥有的旧遥控器的分支。当我这样做时,git branch -la它会显示那些旧的遥控器和分支机构,而git branch -l不会。Als .git/refs/remotes/也显示了它们。但是,它们不在我的.git / config中,在我运行时也不会显示git remote show。 那么,由于我的自动填充列表太长了,我该如何删除它们。 我已经尝试过: git reflog expire --expire=now --all git gc --prune=now rm .git/refs/remotes/theoldremote git remote prune theoldremote 我也知道我可以重新克隆仓库,但这只是作弊;-)
80 git 

9
git命令,使一个分支像另一个分支
我正在尝试进行更改的分支,并将其恢复到与其分支不同的上游。更改既是本地的,也已推送到github,因此它们都不可行,git reset或者说git rebase是真正可行的,因为它们更改了历史记录,这对于已经被推送的分支是一件坏事。 我也尝试git merge了各种策略,但是没有一个能够撤消本地更改,即,如果我添加了一个文件,则合并可能会使其他文件恢复原状,但我仍然会拥有上游没有的文件有。 我可以在上游创建一个新分支,但是我真的很想合并,就修订历史而言,所有更改都将应用到我的分支中,并使它再次与上游相同,以便我可以安全地推送该更改不会破坏历史。有这样的命令或一系列命令吗?

4
如何使git merge的默认值为--no-ff --no-commit?
公司政策是--no-ff用于合并提交。我个人喜欢调整合并日志消息,因此可以使用--no-commit。另外,我喜欢在放弃提交之前进行实际的编译和测试。 如何让我--no-ff和--no-commit我的默认为所有分支机构? (而且自问这个问题以来的几年来我已经学到了,我几乎总是对提交感到满意,因此默认情况下允许提交更简单,只要我在进行推送之前修改或以其他方式解决问题就可以了)都好...)
80 git  merge 


2
“ git checkout -f”和“ git reset --hard HEAD”之间有什么区别?
我需要还原部署的本地更改。(我曾svn revert在过时的SVN时代使用过此功能。) 我git reset --hard HEAD为此使用。(此外git fetch和git merge origin/$branch --no-ff用于与上游分支同步处理资料。) 但是有些文章指出git checkout -f要还原更改。 这些命令之间的主要区别是什么。推荐哪种方式?
80 git 

10
改善git status性能的方法
我在NFS上的Linux机器上有10 GB的存储库。第一次git status需要36分钟,随后git status需要8分钟。似乎Git依赖于OS来缓存文件。只有第一个git命令(如commit)status涉及到打包/重新打包整个存储库,才需要花费很长的时间才能生成大型存储库。我不确定您是否使用git status过这么大的回购协议,但是有人遇到过这个问题吗? 我已经试过git gc,git clean,git repack但所花费的时间仍是/几乎是相同的。 子模块或任何其他概念(如将回购分成更小的子集)是否有帮助?如果是这样,那是拆分更大的仓库的最佳选择。还有其他方法可以改善大型仓库上git命令花费的时间吗?
80 performance  git  nfs 

3
致命:无法快速前进,中止
为什么Git不允许我再进行快速合并?如果我尝试使用来强制执行此操作--ff-only,则会收到消息“致命:无法快速前进,中止”。我意识到,它具有巨大的优势merge --no-ff,但是我很困惑为什么现在不能这样做--ff-only?
80 git 

11
Git Bash(mintty)在Windows 10操作系统上非常慢
几个月前,我在Windows 10上安装了Git 。它工作了一段时间。但是现在,它的运行速度如此之慢。 该git status命令执行需要7秒钟,并且git stash需要花费很多分钟进行存储(即使没有要存储的内容)。另外,我想指出的是,git status该命令可以立即打印结果,但是我无法在几秒钟内输入新命令,如下图所示。 我曾尝试在网上冲浪以解决诸如this,this等问题,但这些方法均无效。 PS:我使用Windows Defender防病毒软件,但这不会使Bash变慢。另外,cmd需要更多时间来执行git命令,而git bash需要更长的时间来执行任何命令。 更新:我已经切换到Ubuntu,因此,我目前不使用Windows。因此,我无法检查是否有任何解决方案对我有用。我接受@pschild提供的答案,因为它的支持最多,并且似乎已经为许多人服务。

6
在命令行显示分支层次结构?
我很好奇是否有办法在命令行上显示分支层次结构吗?例如,如果我使用git branch,而不是看到这样的输出: * master joes_work refactoring experiment 您会看到如下输出: * master joes_work refactoring experiment 这样就很容易看到特定分支的分支。即使没有输出树形结构的特定命令,也是否有一个命令输出有关哪个分支来自哪个分支的信息?我可以使用perl脚本格式化输出。
79 git 

5
Git:警告:refname'master'不明确
我在这里看到一些人问同样的问题,但似乎他们的建议都不适合我。我收到此标题中的警告,但没有名为“ master”的任何标签。这是由于的结果git branch -a: * master remotes/origin/HEAD -> origin/master remotes/origin/master 知道这里可能出什么问题吗?我现在才使用git几个月了,所以主要是让我担心,这种歧义可能会在将来与repo混淆。
79 git 

4
在Intellij终端中设置git
我想在Intellij Terminal中使用git,但无法识别该命令。在命令提示符和Windows power shell中,该命令已被识别(我在系统环境变量中添加了git路径)。我也知道Intellij与Git具有GUI集成。 因此,谁能告诉我如何在Intellij终端中使用git命令。

19
'git push heroku master'仍在要求认证
我已经执行: $ heroku login 但是当我尝试推送时,仍然会要求我进行身份验证: $ git push heroku master Username for 'https://git.heroku.com': <email> Password for 'https://<email>@git.heroku.com': 然后我得到警告:不要使用Git使用用户名和密码进行身份验证。 我再次运行heroku登录并成功通过了身份验证,但仍然遇到相同的失败。 我检查了遥控器: $ git remote -v heroku https://git@heroku.com/appname.git (fetch) heroku https://git@heroku.com/appname.git (push) 我还生成了一个新的公钥,将其传递给Heroku,并对其进行了验证:https : //devcenter.heroku.com/articles/keys 我在Windows 8上使用Git 1.9.5。

5
之前的git合并后git rebase
我有以下情况: 我clone从主存储库(X)创建了(Y),因为有很多人在Y上工作,我们rebase只做merges就不做任何事情。当我们想将pushY交付给X时,我们想做一个arebase以便使事情变得干净整洁 问题在于,这样做时,rebase我们被要求执行之前merge步骤中已经完成的所有合并。除了实际上意味着重新进行合并的解决方案之外,还有其他解决方案吗? 我希望它非常简单,因为我们已经解决了冲突的合并。
79 git  merge  rebase  git-rebase 

12
使用git diff,如何获得添加和修改的行号?
假设我有一个文本文件 alex bob matrix will be removed git repo 我已经将其更新为 alex new line here another new line bob matrix git 在这里,我添加了行号(2,3)和更新了行号(6) 如何使用git diff或任何其他git命令获取这些行号信息?
79 git  diff  git-diff 

2
查看已移动文件的GIT历史记录
尽管阅读了很多有关GIT和移动文件的其他文章,但我仍然很难理解如何跟踪完整的历史记录。这样gitk myfile的建议在这里似乎只能说明历史,直到前一个举动。我知道GIT不会跟踪文件,只会跟踪文件的内容。因此,即使文件已移动,我当然也应该能够查看文件的完整演变? 谁能将我引到一个不错而又简单的示例/教程? 我想看一个示例,其中一些文件被移动,更改和提交,然后显示,移动和全部显示单个文件的历史记录。我一直在看“日志”,但这似乎与签到有关。仍然会喜欢一些建议,即使它说我以某种方式仍在考虑太多SVN。
79 git 

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.