相关疑难解决方法(0)

在Git中压缩前两个提交?

随着git rebase --interactive <commit>你能够压制任意数量的提交连成一个单一的一个.

除非你想将提交压缩到初始提交中,否则这一切都很棒.这似乎是不可能的.

有没有办法实现它?


中度相关:

在一个相关的问题中,我设法提出了一种不同的方法来解决第一次提交的问题,这也就是说,它是第二次提交.

如果您有兴趣:git:如何插入提交作为第一个,转移所有其他?

git rebase git-rebase squash

529
推荐指数
5
解决办法
15万
查看次数

分布式版本控制系统和企业 - 一个很好的组合?

我可以看到为什么分布式源代码控制系统(像Mercurial这样的DVCS)对开源项目有意义.

但它们对企业有意义吗?(通过集中的源控制系统,如TFS)

DVCS的哪些特性使其更适合或更适合具有许多开发人员的企业?(通过集中式系统)

git version-control tfs mercurial dvcs

49
推荐指数
1
解决办法
7181
查看次数

在github上查找强制推送的提交者

在我们的项目(在GitHub上托管)中,有人不小心每次都强行推动主人.没有人知道是否这样做,我想知道是谁做的,以及它背后有什么样的错误配置工具或坏习惯.

所以问题是,如何识别推动力量的用户?我拉的时候看到这样的东西:

# git pull --prune
(.....)
 + 4c0d44c...138b9ed master     -> origin/master  (forced update)
Run Code Online (Sandbox Code Playgroud)

138b9ed它只是源头/主人的最新提交,并且任何人都可能在强制推动后做出承诺; 甚至可能是推力器本人没有做出任何改变,只是重新定位,所以他的名字甚至不存在于作为作者的原始/主人历史的重写部分.

我也尝试了git reflog origin/master,但它只是提供了相同的信息:有一条记录说明git pull --prune (forced update)了提交ID 138b9ed,但是这将再次将最后一个提交者提供给master,而不是那个强制推送的提交者.git reflog master在原始服务器上运行可能会有所帮助,但GitHub并没有为您提供那种访问AFAIK.

有没有可靠的方法来找出推动起源的人(何时)?

git github git-push

13
推荐指数
2
解决办法
8641
查看次数

git中的force push和normal push之间有什么不同

我想知道强制推动和正常推动之间有什么不同,在什么样的情况下我应该强制推入git?强制推入主分支是一个好习惯吗?

git push

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

git pull master的问题与origin master不同步

这些是我执行的一系列步骤:

  1. 将我在分支中的更改提交到本地主服务器(提交ID dc9afg2k)
  2. git fetch origin master && git merge origin master
  3. git checkout master
  4. git pull (这拉动了所有最近的变化)
  5. git fetch origin master && git merge origin master
  6. git reset --hard origin/master
  7. git checkout branch
  8. git blog
  9. git reset --hard dc9afg2k (提交成功)
  10. git checkout master
  11. git log (这回到了2天前).
  12. git pull(master不是用当前更新origin/master).

git git-pull git-fetch git-branch

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

Git:如何忽略快进并将原点[branch]恢复到之前的提交?

我用了

git reset --hard dc082bc... 
由于一些错误的提交,恢复到分支回到所需的先前状态.这让我当地的分公司很好.但是,我想将'origin'上的分支回滚到同一个commit,以便我可以重新开始.谁能告诉我如何将原始分支(非主人)恢复到此提交?

我已经尝试过git push origin master,但它给出了以下错误

 ! [rejected]        branch -> branch (non-fast-forward)
error: failed to push some refs to 'git@github.com:xxx/xxx.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git push --help' for details.

git commit reverting

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

获取强制推送的提交的历史记录

昨天,我们团队的一名成员对git push --forceBitbucket 存储库进行了内部检查。我知道是谁,但我想知道是否可以收集哪些提交被强制推送到存储库中。

我从 git log/history 中寻找的信息是这样的 -

+ 1951097...9b070f0 tower -> origin/tower (forced update)

当我尝试拉入本地分支并在强制推送后遇到合并冲突时,我看到了此消息,但除了那一次之外,我在其他任何地方都无法看到它。是否有一个地方可以看到所有提交(特别是(forced update)旁边带有该标签的提交?)正在运行Git reflog并且git log似乎没有返回此信息。

我看到这篇文章(很搞笑)类似 - How can I find out who force Push in git?

我不是寻找特定的人(就像上一个问题中的提问者),而是寻找在本地克隆后使用 --force 推送到存储库中的提交。这些信息是否可以收集,或者我运气不好?

谢谢。

git github

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

git"你的分支和'origin/master'在远程回购的新克隆之后已经分歧了

当我克隆一个远程存储库时

  1. git clone 'repo_url'
  2. git pull
  3. git status

我收到这条消息 -

On branch master
Your branch and 'origin/master' have diverged,
and have 41 and 20 different commits each, respectively
Run Code Online (Sandbox Code Playgroud)

当我使用时,git pull -a我没有这个问题.

远程仓库上的东西是不同步的吗?与HEAD和主人?我如何解决它?

编辑1:

当我运行git branch -a:这就是它的样子......

$ git branch -a

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/clothes
  remotes/origin/dunnesBranch
  remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

编辑2:

在我看来,origin/master并没有指向最新的代码......然后我运行'git clone'然后运行 git reset --hard origin/master 'git pull'并尝试合并因冲突而失败...

我想......远程仓库的HEAD指向最新的提交,origin/master指向另一个不同的旧提交...我可以在运行git show时验证这一点...

git

5
推荐指数
1
解决办法
6991
查看次数

是否可以在不留下痕迹的情况下重写历史记录?

我已经阅读了有关更改旧提交的时间戳的问题.

我想知道的是:这种操作是破坏性的(即不留下任何痕迹),或者是否有可能发现某个操作是在存储库中完成的?如果是这样,我怎么能这样做?

谢谢

git git-rewrite-history

4
推荐指数
1
解决办法
536
查看次数

GIT无法恢复到先前的提交 - 远程不接受推送

我只是从Git开始,我有一些东西,我需要扭转到以前的提交.我可以在本地做这个没问题.

git reset --hard hashcode(或使用sourcetree)

然而,当我尝试推送到bitbucket时,souretree给了我一个错误,直到我拉下先前的提交,然后我回到了我开始无法恢复到之前的commit.l

如何在本地恢复到先前的提交,然后推送到bitbucket覆盖并删除在我恢复到之后的所有提交?

错误消息是:

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags origin Development:Development
Pushing to git@bitbucket.org:Username/project.git

To git@bitbucket.org:Username/project.git
 ! [rejected]        Development -> Development (non-fast-forward)
error: failed to push some refs to 'git@bitbucket.org:Username/project.git'

hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)

git git-commit atlassian-sourcetree

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