Questions tagged «git»

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

6
Git区分大小写
我遇到了git问题。基本上,我将其设置为falsecore.ignorecase是因为我想更改某些文件夹名称的大小写(因为我在OSX下使用不区分大小写的文件系统,因此不会显示其他更改)。当我提取数据时,我注意到现在每个重命名的文件夹在存储库中都会出现两次,包括旧名称和新名称。我不知道该怎么做才能删除旧文件夹,因为它们不会在本地显示(我尝试core.ignorecase再次设置为true,但这无济于事)。

5
如何将bash脚本直接嵌入git别名中
我可以嵌入以下bash shell代码: for name in $(git diff --name-only $1); do git difftool $1 $name & done 直接进入创建git别名: git config --global alias.diffall ***my-bash-code-here*** 这从我之前关于SO的问题/答案开始,在该问题中,我将代码放入.sh文件中,然后将其别名为该文件: git config --global alias.diffall '!sh diffall.sh' 但是,在对简单性的永无止境的追求中,是否有一种方法可以跳过文件并将代码直接插入别名中?我不知道格式...
82 git  bash  shell  alias 

2
标签之间的Git日志
我正在尝试在两个带标签的提交之间输出日志。 mbell@cheetah [12:07:22] [/var/www/html/brone] [dev] -> % git tag 6.x-0.1 6.x-1.0-beta1 6.x-1.0-beta2 6.x-1.0-beta3 6.x-1.0-beta4 6.x-1.0-beta5 6.x-1.0-beta6 6.x-1.0-beta7 6.x-1.0-beta8 6.x-1.0-beta9 如果我那么做: git log 6.x-1.0-beta8 6.x-1.0-beta9 > ~/gitlogbrone.txt 它输出自回购开始以来的所有提交,这不是我想要的。我已经阅读了git log手册,但是并没有太大帮助。
82 git 

3
Git-如何在选定文件上强制合并冲突和手动合并
我们维护的Web应用程序具有公共主分支和许多并行分支,每个安装一个,每个分支都有一些特定的更改。源代码在git中进行管理,当我们需要将功能和错误修正从master分支转移到并行分支中时,它是一个了不起的工具。但是很少有敏感文件,自动合并通常会产生不好的结果。因此,如果可以以某种方式标记它们,则合并会容易得多,并且每次合并都会导致需要手动合并的冲突。 我搜索了一个答案: 我正在使用--no-commit和--no-ff合并选项,但这并不相同。 在这里和这里,有人问同样的问题,但没有解决方案。 类似的情况似乎是如何防止使用包含以下内容的.gitattributes合并文件:somefile.php merge = ours。我试图找到一些合并选项,该选项会产生冲突或强制进行手动合并,但到目前为止没有找到。 .gitattributes包含:somefile.php -merge永远不会自动合并,因此会强制进行手动合并。这是90%的解决方案,但我寻求的是尝试自动合并并将其标记为冲突,无论是否成功。但这到目前为止是最接近解决方案的。 (...感谢查尔斯·贝利的澄清...) 有人建议编写自定义合并驱动程序(1,2),但如何做到这一点还远未清晰。 编辑:变体4。描述
82 git  merge  branch  conflict  manual 

10
提交机器特定的配置文件
在我进行开发时,常见的情况是该代码库将包含几个需要计算机特定设置的配置文件。这些文件将被检入Git,其他开发人员将总是不小心将它们重新检入并破坏其他人的配置。 一个简单的解决方案是不将其签入Git,甚至不为它们添加.gitignore条目。但是,我发现在文件中包含一些合理的默认值(这很明智),开发人员可以修改这些默认值以满足他的需要。 有没有一种优雅的方法可以使Git很好地处理此类文件?我希望能够修改特定于计算机的配置文件,然后能够在不检入该文件的情况下运行“ git commit -a”。

6
忽略git子模块的新提交
背景 在Linux上使用Git 1.8.1.1。存储库如下所示: master book 子模块的创建如下: $ cd /path/to/master $ git submodule add https://user@bitbucket.org/user/repo.git book 该book子模块是干净的: $ cd /path/to/master/book/ $ git status # On branch master nothing to commit, working directory clean 问题 另一方面,母版显示book子模块有“新提交”: $ cd /path/to/master/ $ git status # On branch master # Changes not staged for commit: …

5
git checkout / pull不会删除目录?
我有我的仓库@ github。我在家里做了一些工作,并将其推送到github。它涉及一些文件和目录的删除。现在,我在工作箱中,该工作箱在删除文件和目录之前具有代码的副本。 我发布了以下内容: git remote update git checkout HEAD git pull origin HEAD 它删除了它应该拥有的所有文件,但没有删除文件所在的目录。 两个问题: 为什么不删除目录? 我可以在当前状态下发出git命令来删除它们吗?
82 git  git-clean 

4
是否可以忽略子目录中的.gitignore规则?
我想忽略子目录中的所有.gitignore规则,但根目录中的.gitignore规则除外。 例如)我已经.gitignore在目录结构中归档了/a。 并且也有.gitignore文件/a/b。假设/a有a.txt b.txt文件。 /a/b有.config文件。在中.gitignore定义。.config/a/b .config文件将被.gitignorein忽略/a/b。 但是我真的想.config通过忽略.gitignore子目录中的规则来跟踪文件。 可能吗? 提前致谢
82 git 


10
Bash别名中的Git自动完成功能?
我正在将go用作简单的bash别名git checkout branchname。我想念的是自动完成功能,可与完整git checkout branchna...命令一起使用,但不能在别名中使用。 有没有一种方法可以指示Bash为另一个命令“继承”自动完成的“驱动程序”?
82 git  bash 

4
存在相同名称的文件时,Git更改分支
我的git仓库中有一个名为xyz的文件。巧合的是,我还有一个名为xyz的分支。目前,我在master上,但是我想结帐到xyz分支。使用的命令很简单 $ git checkout xyz 但这会将文件签出xyz到当前的HEAD。我如何将分支改为分支xyz?

9
找不到git命令,也找不到ssh-agent
我今天在GitHub上,意识到在回购更新方面我落后了。我试图获取更新,但从一开始就失败了。当我启动Git Shell时(从Windows的GitHub)收到两条消息: 警告:找不到git命令。请创建一个别名或将其添加到您的PATH中。 警告:找不到ssh-agent。 当我尝试输入“ $ git fetch origin”时,出现以下错误消息: 术语“ $”不被视为cmdlet,函数,脚本文件或可运行程序的名称。检查名称的拼写,或者是否包含路径,请验证路径是否正确,然后重试。 我也尝试省略$符号,但这并没有改变任何东西。 我不知道这是怎么回事,上次我使用Shell(本月初)时,它没有执行此操作。我尝试将git.exe的路径添加到PATH环境变量中,但这没有用-似乎没有任何变化。这样之后我还没有重新启动计算机,这是问题吗?我也从未设置Git使用SSH。

7
获取现有的git分支来跟踪远程分支
使用git时,我通常的工作流程是这样的: 创建本地存储库 在该存储库中做一些工作,添加/更改文件等。 决定我想要存储库的中央远程位置,然后创建一个 将所有提交从我的本地存储库推送到这个新的远程存储库 然而,现在我希望能够push和pull从该远程存储库,而无需指定我推或拉离; 我希望我的本地主机跟踪远程主机。 对我来说,执行此操作的正确方法尚不明确,尽管它实际上不应只是一个命令,但我无法从文档中确定它。 因为每个存储库只能完成一次,所以我通常采用以下两种简单但棘手的解决方案之一: 用于git clone建立新的本地存储库,并删除了旧的存储库。git克隆后,将建立新的存储库以跟踪源。 手动编辑.git / config以使主音轨起源。 我认为我应该能够运行命令,可能是某种形式的命令,git remote以设置现有存储库以使母版跟踪远程母版。谁能告诉我该命令是什么?
81 git 

4
如何将本地更改推送到Bitbucket上的远程git存储库
我正在测试Git和Bitbucket。 我在Bitbucket上创建了一个存储库,并创建了该存储库的本地副本,并将文件提交到其中。我似乎无法将文件从本地存储库推送到远程存储库。 这是我在做什么: git clone https://me@bitbucket.org/me/test.git cd test touch dummy git add dummy git commit dummy -m "my first git commit" git push 最后一行输出: Everything up-to-date 当我登录到Bitbucket时,看不到我的虚拟文件。 我究竟做错了什么? 编辑: 这样做有效: git push origin master:master 关于此和简单之间的区别有git push什么解释吗?
81 git  bitbucket 

7
如何在SourceTree中放弃未提交的更改?
我是Git环境的新手,并且在Mac上将BitBucket与SourceTree一起使用。我现在要做的就是放弃自上次提交以来所做的更改。我应该怎么做?我还没有找到“放弃更改”之类的东西,并且直接从上次提交中拉出似乎无效。使用GUI或命令行完成的解决方案都不错。谢谢。

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.