Questions tagged «git»

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

8
git-从特定分支中拉出
我已经将git存储库克隆到了我的dev服务器,然后切换到dev分支,但是现在我无法执行git pull来更新分支。 如何更新服务器上的代码?
197 git 

15
检查当前目录是否为Git存储库
我正在zsh中为Git管理编写一系列脚本。 如何检查当前目录是否为Git存储库?(当我不在Git存储库中时,我不想执行一堆命令并获得一堆fatal: Not a git repository响应)。
197 git  zsh 

16
git分支之间的视觉差异
这个答案非常适合查看被检入git的两个文件之间的视觉差异: 如何使用视觉差异程序查看“ git diff”输出? 但是,我希望看到两个分支之间的视觉差异。到目前为止,我最好的选择似乎是: git diff --name-status master dev 这不是很有用,也不是很直观。 还有什么更好的了吗?
196 git  diff 


30
git index.lock文件在我尝试提交时存在,但无法删除该文件
当我执行“ git commit”时,得到以下信息: fatal: Unable to create 'project_path/.git/index.lock': File exists. 但是,当我这样做时ls project_path/.git/index.lock,该文件不存在。对我应该怎么做有什么想法?我还注意到project_path / .git是root拥有的,不确定是否与我遇到的问题有关。 git版本是1.7.5.4 编辑:似乎问题很可能是我正在运行的另一个进程,该进程正在写入(对我而言未知)到项目目录。我重新启动计算机,然后提交就没有问题了。
196 git 

9
如何git reset --hard子目录?
更新²:使用Git 2.23(2019年8月)时,有一个新命令git restore可以执行此操作,请参见接受的答案。 更新:从Git 1.8.3开始,这将更加直观,请参阅我自己的答案。 想象一下以下用例:我想摆脱Git工作树的特定子目录中的所有更改,而所有其他子目录保持不变。 我可以git checkout .,但是git checkout。添加稀疏检出排除的目录 有git reset --hard,但不允许我对子目录进行操作: > git reset --hard . fatal: Cannot do hard reset with paths. 再说一遍:为什么git无法按路径进行硬/软复位? 我可以使用来反向修补当前状态git diff subdir | patch -p1 -R,但这是一种很奇怪的方法。 此操作正确的Git命令是什么? 下面的脚本说明了该问题。在How to make files注释下方插入正确的命令-当前命令将恢复a/c/ac稀疏检出排除的文件。请注意,我不希望明确恢复a/a和a/b,我只“知道” a,并希望恢复下的所有内容。编辑:而且我也不知道b,或者其他目录与处于同一级别a。 #!/bin/sh rm -rf repo; git init repo; cd repo for f …

10
Git与Mercurial存储库的互操作性
我在Mac上使用GIT。说够了。我有工具,我有经验。而且我想继续使用它。这里没有战争... 问题总是与互操作性有关。大多数人都使用SVN,这对我来说很棒。Git SVN开箱即用,是一种简洁的解决方案。人们可以继续快乐地使用SVN,并且我不会失去工作流程和工具。 现在...有些人和水星一起来。对他们很好:他们有他们的理由。但是我找不到现成的GIT HG。我不想切换到HG,但是我仍然需要与他们的存储库进行互操作。 你们中有人知道一个简单的解决方案吗?



14
通过SSH配置Git登录一次
我已经通过ssh克隆了我的git存储库。因此,每次我通过推或拉与原始主机通信时,都必须重新输入密码。如何配置git,这样我就不需要多次输入密码了?
195 git  ssh  ssh-keys 

12
如何获得bash补全以使用别名?
例子: 我在Mac上使用bash v3.2.17,正在使用通过具有bash_completion变体的macports安装的git。 当我键入git checkout m<tab>。例如,我完成了master。 但是,我有一个别名git checkout,gco。当我输入时gco m<tab>,我没有自动完成分支名称。 理想情况下,我希望自动补全可以神奇地为我的所有别名工作。可能吗?失败的话,我想为每个别名手动自定义它。那么,我该怎么办?
195 git  bash  shell  unix  autocomplete 

6
Git:在裸仓库中更改Active Branch的正确方法吗?
我有一个裸仓库,用作我的项目的中央存储。所有开发人员都git clone <repo>愿意与它分享。当他们进行克隆时,git clone -n由于repo.git/HEAD包含ref: refs/heads/master,他们将获得master分支的签出(除非这样做),从而使之成为Active Branch。 问题是,如何正确更改活动分支?我可以repo.git/HEAD直接直接破解文件,但这似乎很讨厌,而且很hacky。 我尝试git checkout <otherbranch>在repo .git目录中执行此操作,但是失败了,因为我不在工作树中。 我尝试过,git update-ref HEAD refs/heads/otherbranch但是只是将refs / heads / master更新为与refs / heads / otherbranch相同(好吧,我在虚拟存储库中做了一个,而不是我的生产仓库!) 我尝试了git update-ref --no-deref HEAD refs/heads/otherbranch,那几乎成功了。它更新了HEAD文件,但将其设置为指向的提交的SHA1 refs/heads/otherbranch。 我正在测试git版本1.7.0.2.msysgit.0。 我猜测没有办法做到这一点git push,因为允许所有人和其他人更改您的默认分支似乎有些不安全(!),但是肯定有.git比直接修改HEAD文件更好的方法在repo 目录中。
195 git 

10
Git Push错误:拒绝更新签出的分支
我已经解决了一些合并冲突,已提交然后尝试推送更改,并收到以下错误: c:\Program Files (x86)\Git\bin\git.exe push --recurse-submodules=check "origin" master:master Done remote: error: refusing to update checked out branch: refs/heads/master remote: error: By default, updating the current branch in a non-bare repository remote: error: is denied, because it will make the index and work tree inconsistent remote: error: with what you pushed, …
195 git  git-push 

10
为什么git会说“无法拉,因为您有未合并的文件”?
当我尝试在终端中放入项目目录时,看到以下错误: harsukh@harsukh-desktop:~/Sites/branch1$ git pull origin master U app/config/app.php U app/config/database.php U app/routes.php Pull is not possible because you have unmerged files. Please, fix them up in the work tree, and then use 'git add/rm <file>' as appropriate to mark resolution, or use 'git commit -a'. 为什么git会说"Pull is not possible because …


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.