小编Cas*_*bel的帖子

将单个文件还原为git中的先前版本

有没有办法在文件上进行不同的提交.假设我已经修改了一个文件5次,并且在我已经提交并推送到存储库之后我想回到更改2.

在我的理解中,唯一的方法是保留许多分支,我做对了吗?如果我是对的,我会在几天内拥有数百个分支,所以我可能真的不理解它.

有人可以清楚吗?

git revert

585
推荐指数
5
解决办法
47万
查看次数

git pull origin master和git pull origin/master之间的差异

git pull origin master和之间有什么区别git pull origin/master

git version-control

264
推荐指数
3
解决办法
27万
查看次数

撤消"git add <dir>"?

我使用命令"git add dir"错误地添加了文件.我还没有运行"git commit".有没有办法从提交中删除此目录及其中包含的所有内容?

我试过了git reset dir,但没用.显然git reset file是撤消它的方法.但是我有这么多文件,所以时间很少.

git git-reset

171
推荐指数
4
解决办法
6万
查看次数

Git pull在提交日志中导致无关的"合并分支"消息

我正在与一个项目的另一个开发人员合作,我们正在使用Github作为我们的远程仓库.我在Mac上使用git 1.7.7.3,他在Windows上使用git 1.7.6.

这就是发生的事情

  1. 我们中的一个(让我们称他为开发人员A,但无论哪一个)都将一组提交推送给GitHub.
  2. 另一个(开发人员B)进行一些本地提交.
  3. B做了git pull.
  4. B做了git push.
  5. 查看提交历史记录日志,我看到github.com:foo/bar的合并分支"master"

随着时间的推移,提交日志中充斥着"合并分支"消息,并且还将开发人员B显示为提交开发人员A所做的更改.我们发现防止这个问题的唯一方法就是git pull --rebase在步骤3进行,但我不知道变形引起的副作用是什么.这是我第一次使用多开发人员git仓库,这是正常行为吗?有关如何解决这个问题的任何想法?

git commit github

99
推荐指数
5
解决办法
4万
查看次数

显示直接向分支提交的提交,忽略Git中的合并

使用git时,有没有办法显示对分支的提交,而忽略了通过合并引入的所有提交?

我正在尝试检查在分支上进行的代码更改,而忽略了我们在合并的其他分支上所做的更改.我知道这几乎不可能以这种方式显示差异,但我希望能够找出我需要审核的提交.

git diff merge branch

80
推荐指数
2
解决办法
2万
查看次数

如何将git文件还原到其临时区域版本?

假设我有一个名为的文件a.txt.我将它添加到临时区域,然后我修改它.我怎么能把它恢复到我添加它的时候呢?

git

69
推荐指数
2
解决办法
2万
查看次数

在github上没有空格更改的提交

有没有办法在github.com上显示提交而不显示空格更改?

有没有办法从控制台显示?即克隆然后查看提交(树)本地忽略所有空格的变化?

我广泛使用Trac; 我正在寻找类似的东西Ignore White space changes(可以在变更集视图中找到).

git trac github

24
推荐指数
2
解决办法
9915
查看次数

git - 在存储弹出期间合并冲突后的错误

原标题:git - 更新所有尚未更改的文件

目前我正在尝试更新git存储库中尚未更改的所有文件.让我们说例如我有:

  • test1.py
  • test2.py

test1.py已在本地修改,而两个文件都已远程修改.现在我试过了:

git stash
git pull
git stash pop
Run Code Online (Sandbox Code Playgroud)

这恢复了我的更改,给了我一个警告,我需要合并test1.py.到现在为止还挺好.当我尝试再次执行相同的过程时(两个文件再次远程更改后)出现问题.Git现在说

unmerged (6b126638f7c63aa648609afa60ab972a2403502b)
fatal: git-write-tree: error building trees
Cannot save the current index state
Run Code Online (Sandbox Code Playgroud)

这让我很伤心.它只是想要一个简单的事情:更新我没有改变的所有文件.我稍后会照顾合并.

git git-stash

21
推荐指数
1
解决办法
2万
查看次数

绕过sed反向引用限制\ 1到\ 9

sed手册明确指出,替代字符串中可用的替代字符串可用的编号为\ 1到\ 9.我正在尝试解析一个包含10个字段的日志文件.

我为它形成了正则表达式,但是第十场比赛(以及之后的任何内容)都无法访问.

有没有人有一种优雅的方法来规避KSH中的这种限制(或者我可以移植到shell脚本的任何语言)?

regex shell backreference sed

17
推荐指数
2
解决办法
7518
查看次数

高度耦合的git子模块

我有一个项目需要分成两个存储库:一组通用模型,以及基于这些模型的模拟,以及其他代码.最终可能会有多个模拟使用同一组模型,因此将它们放在一个单独的存储库中是一个明确的要求.显而易见的解决方案是将通用模型作为模拟的子模块.

不幸的是,这两个库的工作将非常高度耦合.人们会经常在他们的常见模型中添加一些东西,然后立即在模拟中使用它.我想这会在模拟回购的整合过程中引起很多麻烦.为了在模拟中合并来自许多开发人员的更改,集成商将不得不在通用模型子模块中进行并行合并.另一方面,它也使得使用子模块变得至关重要 - 模拟真的需要知道它应该使用哪个版本的常见模型.

该项目由相当多的人开展.大多数开发人员只对git有一个非常粗略的了解:他们添加文件,提交和从源头拉取很多东西,并希望有一个开发和稳定的分支.积分器自然学到了很多东西,但任何涉及子模块的东西对他来说肯定都是新的.额外的奖励:我即将休假一个月,所以我将无法扑灭任何火灾.结果是,有很多动机使工作流程变得非常难以搞砸,并最大限度地减少与以前工作流程的差异.

所以,我的问题是:我是否会后悔建议我们使用子模块?(有更好的想法吗?)我可以期待人们犯下什么样的错误,所以我可以提前警告他们?是否有任何好的工作流程策略要记住?

编辑:我刚遇到git slave,在这种情况下也许值得一看.还不能对其网站上的能力/限制进行良好的评估.

git git-submodules

16
推荐指数
2
解决办法
2300
查看次数