我最近从SVN转到git,并尝试学习git的方法.我需要找到我的存储库的2个分支之间已更改的文件.我使用以下命令:
git diff branch_2..branch_1
Run Code Online (Sandbox Code Playgroud)
我得到了以下错误:
fatal: ambiguous argument 'branch_2..branch_1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Run Code Online (Sandbox Code Playgroud)
git branch给出以下o/p:
git branch -a
* branch_1
master/origin
remotes/origin/HEAD -> origin/master
remotes/origin/branch_2
remotes/origin/branch_1
Run Code Online (Sandbox Code Playgroud)
idj*_*jaw 19
如果你只是在做:
git diff branch2..branch1
Run Code Online (Sandbox Code Playgroud)
这将不起作用,如您的git分支列表中所列,您的"遥控器"被指定为"原点".这实际上意味着您在遥控器上有这些分支,但它们实际上并未在本地检出.
所以你有两个选择.试试这些,让我知道它是怎么回事.
根据提供的分支列表:
差异使用原点/
git diff origin/branch2..branch1
Run Code Online (Sandbox Code Playgroud)
如果你想在本地签出这些分支来执行你的差异,也许你可以在你的工作站上工作.此外,支持这种格式的差异:
git diff branch2..branch1
Run Code Online (Sandbox Code Playgroud)
您需要做的是实际检查这些分支以将它们设置为远程的本地分支.只需这样做:
git checkout branch2
Run Code Online (Sandbox Code Playgroud)
那你可以做
git diff branch2..branch1
Run Code Online (Sandbox Code Playgroud)
有时你会得到一个浅层 git repo,使用以下命令创建
git clone --depth 1 <repo-url>
Run Code Online (Sandbox Code Playgroud)
尝试git diff失败fatal: ambiguous argument error:
fatal: ambiguous argument [...]: unknown revision or path not in the working tree.
Run Code Online (Sandbox Code Playgroud)
然后,您需要使您的参考在本地可用。将浅层 git 存储库从浅层存储库转换为完整(非浅层)存储库,请参阅git deep fetch和git unshallow。
然后它应该能够git diff分支:
git diff branch1
Run Code Online (Sandbox Code Playgroud)
上述示例branch1与活动工作分支进行比较。
华泰
| 归档时间: |
|
| 查看次数: |
8795 次 |
| 最近记录: |