标签: git

撤消git rebase

有谁知道如何轻松撤消git rebase?

想到的唯一方法是手动进行:

  • git checkout两个分支的提交父级
  • 然后从那里创建一个临时分支
  • 樱桃 - 手工挑选所有提交
  • 用手动创建的分支替换我重新定位的分支

在我目前的情况下,这是可行的,因为我可以很容易地发现两个分支的提交(一个是我的东西,另一个是我的同事的东西).

然而,我的方法让我感到不理想和容易出错(假设我刚刚用自己的2个分支重新定位).

有任何想法吗?

澄清:我正在谈论一个rebase,在此期间重播了一堆提交.不仅仅是一个.

git undo rebase git-rebase

2965
推荐指数
15
解决办法
92万
查看次数

使用Git版本控制查看文件的更改历史记录

如何在Git中查看单个文件的更改历史记录,完整的详细信息?

我有:

git log -- [filename]
Run Code Online (Sandbox Code Playgroud)

它显示了文件的提交历史记录,但是如何获取每个文件更改的内容?

我正试图从MS SourceSafe过渡到过去那么简单right-clickshow history.

git git-log

2920
推荐指数
23
解决办法
156万
查看次数

仅存储使用Git更改的多个文件中的一个文件?

如何在我的分支上只隐藏多个已更改文件中的一个?

git git-stash

2895
推荐指数
20
解决办法
74万
查看次数

从Git存储库中删除文件而不从本地文件系统中删除它

我的初始提交包含一些日志文件.我已添加*log到我的.gitignore,现在我想从我的存储库中删除日志文件.

git rm mylogfile.log
Run Code Online (Sandbox Code Playgroud)

将从存储库中删除文件,但也将从本地文件系统中删除它.

如何在删除文件的本地副本的情况下从存储库中删除此文件?

git repository remote-server delete-file git-rm

2892
推荐指数
11
解决办法
78万
查看次数

如何克隆特定的Git分支?

Git clone会将远程当前工作分支复制到本地.

有没有办法自己克隆一个特定的分支而无需在远程存储库上切换分支?

git git-clone git-branch

2804
推荐指数
7
解决办法
294万
查看次数

"git add -A"和"git add"之间的区别.

该命令git add [--all|-A]似乎与git add ..相同.它是否正确?如果没有,它们有何不同?

git git-add

2788
推荐指数
11
解决办法
160万
查看次数

在Git存储库中查找并恢复已删除的文件

说我在Git存储库中.我删除了一个文件并提交了更改.我继续工作,并做了一些更多的提交.然后,我发现我需要恢复该文件.

我知道我可以使用签出文件git checkout HEAD^ foo.bar,但我真的不知道该文件何时被删除.

  1. 找到删除给定文件名的提交的最快方法是什么?
  2. 将该文件恢复到我的工作副本的最简单方法是什么?

我希望我不必手动浏览我的日志,检查整个项目的给定SHA,然后手动将该文件复制到我原来的项目结帐中.

git file-io git-checkout

2716
推荐指数
20
解决办法
93万
查看次数

在Git中只提交文件的一部分

当我在Git中对文件进行更改时,如何只提交一些更改?

例如,我怎样才能在文件中更改的30行中只提交15行?

git git-commit

2629
推荐指数
19
解决办法
36万
查看次数

如何列出提交中的所有文件?

我正在寻找一个简单的git命令,它提供了一个格式良好的所有文件列表,这些文件是散列(SHA1)给出的提交的一部分,没有任何无关的信息.

我试过了:

git show a303aa90779efdd2f6b9d90693e2cbbbe4613c1d
Run Code Online (Sandbox Code Playgroud)

虽然它列出了文件,但它还包含每个文件的不需要的差异信息.

是否有另一个git命令只提供我想要的列表,以便我可以避免从git show输出中解析它?

git git-show

2619
推荐指数
28
解决办法
138万
查看次数

在git中推送提交时,src refspec master与any不匹配

我克隆了我的存储库:

git clone ssh://xxxxx/xx.git 
Run Code Online (Sandbox Code Playgroud)

但之后,我改变了一些文件,并addcommit他们,我想他们推到服务器:

git add xxx.php
git commit -m "TEST"
git push origin master
Run Code Online (Sandbox Code Playgroud)

但我得到的错误是:

error: src refspec master does not match any.  
error: failed to push some refs to 'ssh://xxxxx.com/project.git'
Run Code Online (Sandbox Code Playgroud)

git commit

2472
推荐指数
75
解决办法
173万
查看次数