Questions tagged «git»

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

5
Git:无法撤消本地更改(错误:路径…未合并)
我有以下工作树状态 $ git status foo/bar.txt # On branch master # Unmerged paths: # (use "git reset HEAD <file>..." to unstage) # (use "git add/rm <file>..." as appropriate to mark resolution) # # deleted by us: foo/bar.txt # no changes added to commit (use "git add" and/or "git commit -a") 文件foo/bar.txt在那里,我想再次使其变为“不变状态”(类似于“ …

11
Git钩子脚本可以与存储库一起管理吗?
我们想制作一些我们都可以共享的基本钩子脚本-用于诸如预格式化提交消息之类的事情。Git的钩子脚本通常存储在<project>/.git/hooks/。但是,当人们进行克隆时,这些脚本不会传播,并且不受版本控制。 有没有一种好的方法可以帮助每个人获得正确的钩子脚本?我可以仅使这些挂钩脚本指向我的存储库中的版本控制脚本吗?
336 git  githooks 

6
如何在Windows下强制git使用LF而不是CR + LF?
我想强制git在Windows下使用LFnot 检出文件CR+LF。我检查了两个配置选项,但找不到正确的设置组合。 我希望它将所有文件转换为LF并保留LF在文件上。 备注:我曾经使用过,autocrlf = input但这只是在您提交文件时修复文件。我想强迫它使用它们LF。 可能我不太清楚:该存储库已经在使用,LF但是使用msysgit检出的文件正在使用CR+LF,我想强制使用msysgit来获取它们LF:强制Unix行结尾。 >git config --list | grep crlf core.autocrlf=input
335 git  msysgit 

14
在.gitmodule中找不到不是子模块的路径的子模块映射
我有一个项目在一个子模块 lib/three20 我的.gitmodule文件如下所示: [submodule "lib/three20"] path = lib/three20 url = git://github.com/facebook/three20.git 我过去一直在正确无误地克隆它(git submodule init后跟一个git submodule update),并且已经工作了一段时间。 我试图将其克隆到新机器上,现在出现以下错误git submodule init: No submodule mapping found in .gitmodules for path 'Classes/Support/Three20' 该路径只是Xcode中的一个空文件夹,我用来容纳其他目录中的项目。它不是.gitmodules文件的一部分,所以我看不到从何处获得此路径。 有任何想法吗?


3
撤消git stash
我只是在一个尚未提交的项目中进行了存储。我藏匿之前有办法回到状态吗?我该怎么办?我关闭了终端,笔记本电脑也关闭了。我已经做了一些研究,似乎没有办法做到这一点。
335 git 

7
GitHub为什么推荐基于SSH的HTTPS?
在GitHub站点上有一个链接... https://help.github.com/articles/generating-ssh-keys ...它说... 如果您决定不使用推荐的HTTPS方法,我们可以使用SSH密钥在您的计算机和GitHub之间建立安全连接。以下步骤将引导您生成SSH密钥,然后将公共密钥添加到您的GitHub帐户。 为什么推荐使用HTTPS?SSH方法中是否存在某种安全漏洞?还是速度较慢?我创建了SSH密钥,这样可以缓解任何安全问题吗?
334 git  github  ssh  https 


4
“ u”到底是做什么的?“ git push -u原始主机”与“ git push原始主机”
尽管我尽了最大的努力去理解git,但我显然还是很害怕使用它。 从kernel.org获得git push: -u --set-upstream 对于每个最新的或成功推送的分支,请添加上游(跟踪)引用,该引用由无参数git-pull(1)和其他命令使用。有关更多信息,请参见branch.<name>.mergegit-config(1)。 下面是branch.<name>.merge来自git config: branch.<name>.merge 与一起定义branch.<name>.remote给定分支的上游分支。它告诉git fetch / git pull合并哪个分支,并且还可能影响git push(请参阅push.default)。在branch中时<name>,它告诉git fetch将默认的refspec标记为要合并到FETCH_HEAD中。该值的处理方式类似于refspec的远程部分,并且必须匹配从所给定的从远程获取的ref "branch.<name>.remote"。git pull(首先调用git fetch)使用合并信息来查找默认分支进行合并。如果没有此选项,则git pull默认情况下会合并获取的第一个refspec。指定多个值以获取章鱼合并。如果您希望设置git pull以便它可以<name>从本地存储库中的另一个分支合并到一起,则可以指向branch.<name>.merge到所需的分支,然后使用特殊设置。(一个时期)branch.<name>.remote。 我使用github成功设置了一个远程存储库,并使用以下命令成功将其第一次提交: git push -u origin master 然后,我无意间成功地使用以下命令将第二次提交推送到远程存储库: git commit -m '[...]' 但是,我错误地认为我将不得不再次推至originfrom master,我跑了: # note: no -u git push origin master 那是做什么的?它似乎根本没有任何作用。我“撤消”了git push -u origin master吗?
333 git 

3
强制更新后的Git拉
我只是压缩了一些提交git rebase并执行了git push --force(我知道这是邪恶的)。 现在其他软件工程师有不同的历史记录,当他们执行时git pull,Git将合并。除了执行操作外,是否有办法解决此问题rm my-repo; git clone git@example.org:my-repo.git? 我需要类似的相反的东西git push --force,但git pull --force没有给出预期的结果。
332 git  git-pull 


7
如何仅使用第一行输出git log?
我正在尝试自定义格式git log。我希望所有提交都显示在一行中。每行仅应显示提交消息的第一行。 我发现是git log --pretty=short应该做的伎俩,但我的电脑上显示完整的日志中git log做(除了时间戳)。 此外,我尝试使用手册页中定义的占位符。但是,我找不到缩短日志消息的命令。我尝试了这一行git log --pretty=format:'%h : %s',该行在一行中显示了短哈希%h和完整消息%s。 我git version 1.7.3.1.msysgit.0在Vista上使用。 也许与我编写提交消息的方式有关。这是一个例子: Added some functionality. + Added print function in Foo class. + Added conversion from foo to baz. 因此,在给出示例的情况下,我只想输出Added some functionality.经过缩短的哈希值开头的内容。

22
Git:“腐败的松散物体”
每当我从遥控器上拉出时,都会出现以下有关压缩的错误。当我运行手动压缩时,会得到相同的结果: $ git gc error: Could not read 3813783126d41a3200b35b6681357c213352ab31 fatal: bad tree object 3813783126d41a3200b35b6681357c213352ab31 error: failed to run repack 有谁知道该怎么办? 从猫文件我得到这个: $ git cat-file -t 3813783126d41a3200b35b6681357c213352ab31 error: unable to find 3813783126d41a3200b35b6681357c213352ab31 fatal: git cat-file 3813783126d41a3200b35b6681357c213352ab31: bad file 从git fsck我得到这个(不知道它是否实际相关): $ git fsck error: inflate: data stream error (invalid distance too …

8
在git中,有没有简单的方法将无关分支引入存储库?
今天在帮助有git问题的朋友时,我不得不介绍一个需要与该master分支完全分开的分支。该分支的内容确实与该分支上开发的内容有不同的来源master,但是master稍后将合并到分支中。 我从头到尾地阅读了约翰·威格利的《Git》,从中回忆起分支实际上是遵循某种约定的提交的标签,以及如何将提交与文件树以及父提交(或可选地)绑定在一起。我们使用git的管道创建对现有存储库的无父母提交: 所以我们摆脱了索引中的所有文件... $ git rm -rf . ...从压缩包中提取目录和文件,并将它们添加到索引中... $ git add . ...并创建了一个树对象... $ git write-tree (git-write-tree告诉我们所创建的树对象的sha1sum。) 然后,我们提交了树,但未指定父提交... $ echo "Imported project foo" | git commit-tree $TREE (git-commit-tree告诉我们创建的提交对象的sha1sum。) ...并创建一个指向我们新创建的提交的新分支。 $ git update-ref refs/heads/other-branch $COMMIT 最后,我们回到master分支机构继续在那里工作。 $ git checkout -f master 这似乎按计划进行。但这显然不是我建议刚开始使用git的人喜欢的那种过程。有没有更简单的方法来创建一个新分支,该分支与到目前为止存储库中发生的一切完全无关?
328 git  branch 


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.