通常,我的同事会对一个公开拉取请求进行一些更改,将他们的本地分支重新绑定到基本分支 - 通常也将他们的更改压缩到以前的提交中 - 并强制推送.
如何看待旧版PR与新版PR之间的变化?
我想我可以做一个git pull和git checkout $BRANCH_NAME当PR首次提出,然后git fetch再git diff $BRANCH_NAME..origin/$BRANCH_NAME对PR进行了更新后-但也将显示已通过重订引入基地分支(通常硕士),并带入PR的变化.是否有可能消除噪音并只显示PR本身的变化?
有没有办法(从命令行)列出Git/GitHub中PR中更改的所有文件的名称?这将用于查找需要在该PR的Travis CI构建中运行哪些测试.
CI构建在调用脚本之前运行这些命令:
git clone --depth=50 git://github.com/jekyll/jekyll.git jekyll/jekyll
cd jekyll/jekyll
git fetch origin +refs/pull/2615/merge
git checkout -qf FETCH_HEAD
Run Code Online (Sandbox Code Playgroud) 在我打开拉请求的分支上工作时,我希望看到GitHub在命令行上显示的完全相同的差异.什么是特定的git diff命令复制GitHub为拉取请求显示的更改列表?
合并分支后,当我尝试发出拉取请求时,github不再显示差异,但git diff仍会显示差异.
例如,我有分支D,在分支H上创建了修补程序,将H合并到D,然后在D上创建了更多东西.现在git hub pull reuqest从H到D显示没有区别,但git diff HD显示差异.
我想要做的是创建一个命令行工具,以查看哪些旧分支(可能有很多)没有代码差异来开发.现在我必须去github,做一个拉动reuqest并选择每个分支,看看是否有差异.
谢谢
在通常的git存储库上工作时,本地分支通常会跟踪相应的远程上游分支.通过这种方式,我可以很容易地看到,无论我是在我的上游分支的前面还是后面,因此我需要推或拉来使它们同步.此外我的提示立即显示此状态,这非常方便.
现在我正在使用SVN存储库git-svn.我用--prefix=svn的克隆,因此git branch -r列出svn/trunk作为远程分支,但(虽然git svn rebase没有问题作品)它没有被配置为用于我的主分支的上游分支.
我尝试手动设置跟踪信息,但失败了:
$ git branch -r
svn/trunk
$ git branch --set-upstream-to=svn/trunk
fatal: Cannot setup tracking information; starting point 'svn/trunk' is not a branch.
Run Code Online (Sandbox Code Playgroud)
有没有办法跟踪svn上游分支?
还有其他一些简单的方法可以知道我是领先还是落后于那个分支?(看着gitk --all目前我所知道的唯一方式.)
有没有办法让我的(bash __git_ps1)提示显示信息?
$ git --version
git version 1.9.0.msysgit.0
Run Code Online (Sandbox Code Playgroud) 我有以下分支:
* master
newbranch
remotes/origin/HEAD -> origin/master
remotes/origin/api-notes
remotes/origin/event-creation-validation
remotes/origin/master
remotes/origin/organizerlocation-bug-demo
remotes/origin/ticket-180
Run Code Online (Sandbox Code Playgroud)
当前分支主服务器与origin/master不同,还是这些分支机构一起工作?
如何检测不同分支中的最后更改以及如何将其删除以进行清理?
非常感谢你.
首先:StackOverflow 上已经有两个关于这个主题的问题有可靠的答案,但我仍然感到困惑。我有点理解“什么”,但不明白“为什么”。
我的问题是:为什么显示git log A..B (双点)从 B 到 A 的提交列表,但为了获得同一组提交的差异,必须编写git diff A...B (三点)。
git log如果和git diff会以同样的方式对待提交范围,不是会更加一致吗?现在它们的行为似乎彼此正交。
也许我缺少一些关于为什么要这样设计的见解?
我总是问自己一些关于我创建的分支的问题,我还没有确定如何完成:
现在我想如果弄清楚如何获取所有提交给分支但没有合并到master中的提交的哈希值git cherry master <branchname>.有了这个我可以通过哈希哈希并弄清楚一切,但如果你有很多提交,这可能是耗时的.请注意,我不想与当前的主人状态进行比较.我认为关键是要知道你创建分支的master的哈希值,但我不确定如何确定它.
我正在调查git存储库.我想在每次提交中获取已更改文件的列表.
所以,我做的是通过命令访问每个提交
git reset --hard <commitId>
Run Code Online (Sandbox Code Playgroud)
然后,我用了
git show --pretty="format:" --name-only #{commitId}
Run Code Online (Sandbox Code Playgroud)
这个的问题是它提供了我不想要的commitId中的已删除文件.我也尝试过:
git ls-files
Run Code Online (Sandbox Code Playgroud)
它不会返回已删除的文件,但是,它会返回所有现有文件的列表,这些文件是新的或在先前的提交中创建的.
例:
>commit 1
add "file1"
add "file2"
>commit 2
change "file1"
>commit 3
add "file3"
delete "file2"
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下,我将访问每个提交.并且,如果我在提交1中,我想获得"file1"和"file2"的列表.如果我在提交2中,如果我在提交3中,我将获得"file1"和"file3".
任何想法?
我在github上有一个本地仓库和一个远程仓库.出于商业原因,它们不同步.我在当地做了很多工作,现在我正在手动将新的东西添加到我的本地.没有分支.
当我使用命令时,
git diff --color master..origin/master
Run Code Online (Sandbox Code Playgroud)
我得到了很好的结果,显示了改变了......我添加到本地仓库的东西标有 - 符号,并以红色显示; 而遥控器上的内容以绿色显示+符号.
有没有办法只显示遥控器上的新功能而不是本地功能?也就是说,向我展示遥控器上的任何新文件,并向我显示遥控器上的文件中的任何新行或修改行(显示所有绿色+)
谢谢.