git-config的手册页列出了push.default的这些选项:
nothing - do not push anything.
matching - push all matching branches. All branches having the same name in both ends are considered to be matching. This is the default.
upstream - push the current branch to its upstream branch.
tracking - deprecated synonym for upstream.
current - push the current branch to a branch of the same name.
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,我会假设推送到分支的上游分支与推送到同名分支相同,因为上游分支通常具有相同的名称,并且因为同名的分支("当前" )通常(或总是按定义?)是上游.那有什么区别?
UPDATE:为的git-config中的男子页面已经更新(如人们所期望的),这样的区分做出有可能是一个更加清晰了.
我想知道是否有办法在git日志中查看与每个提交相关的推送日期.如果那是不可能的,有没有办法在一定的推动下看到所有提交.
我编写了一个程序,需要在推送时跟踪提交.因为git日志是按提交日期排序的,而不是推送日期,所以我无法看到推送的最新提交.例如,如果用户在推送到主服务器之前2天提交到其本地存储库,则该提交将被放置在主存储库日志中的其他提交的2天之后.
场景:
Git回应:
更新被拒绝,因为您当前分支的提示落后于其远程对手.等等
我是唯一一个黑客入侵这个分支的人 - 没有其他人在触摸它.远程分支实际上位于本地分支之后.我根本不应该拉.
(如果我拉,Git报告两者之间的冲突,并迫使我将分支合并到自身)
为什么会这样(可能)发生?我该如何诊断/修复它?
要清楚,我不会在任何地方分支,也没有其他人在研究它:
Remote: Commit A -------- Commit B
Local: Commit A -------- Commit B -------- Commit C
Run Code Online (Sandbox Code Playgroud)
C是B的直接延续,不涉及分支.但是git认为C是A的一个分支:
Remote: Commit A -------- Commit B
------- Commit C
/
Local: Commit A -------- Commit B
Run Code Online (Sandbox Code Playgroud)
不是; 它是B的直接延续.
我不时会遇到这个问题.
假设我已经按照以下方式阅读了rails的源代码,因为我遇到了一些问题.
git clone git://github.com/rails/rails.git
Run Code Online (Sandbox Code Playgroud)
在研究期间,我测试了一些东西,现在我有一个修复,我希望rails核心团队来看看.如何将我的更改推送到分叉版本的rails.
记得当我克隆时,我没有克隆分叉版本而是只读版本.
并不是说我反对分叉.只是有时我认为我只是要浏览然后我想添加一些东西.
我刚使用--force选项将错误的源代码提交给了我的项目.
是否有可能还原?我知道所有以前的分支都被使用-f选项覆盖,所以我可能搞砸了我之前的修订版.
我moodle在我的Github帐户上有一个存储库,我forked来自官方存储库.
然后我在我的本地机器上克隆它.它工作正常.我创建了几个分支(在master分支下).我做了几个提交,它工作正常.
当我这样做时,我不知道我是如何得到以下错误的: git push origin master
fatal: 'origin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
如何在不影响Github上的存储库的情况下解决错误?
我正在使用 Ubuntu 12.10
我.git/config做的内容cat $(git rev-parse --show-toplevel)/.git/config给出了:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[branch "master"]
[branch "MOODLE_23_STABLE"]
[branch "MOODLE_24_STABLE"]
[remote "upstream"]
url = git://git.moodle.org/moodle.git
fetch = +refs/heads/*:refs/remotes/upstream/*
Run Code Online (Sandbox Code Playgroud) 如何设置git在每次提交到本地仓库后自动推送到远程仓库(包括自动提供我的密码)?
有没有一个很好的方法来解释如何! [rejected] master -> master (fetch first)'在Git中解决" "?
当我使用此命令时, $ git push origin master它显示一条错误消息.
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:zapnaa/abcappp.git'
Run Code Online (Sandbox Code Playgroud) 我克隆了一个存储库,我的仓库中的master分支正在跟踪origin/master.我创建了一个work分支并更改了一些特定于我的开发机器的配置文件,以使应用程序正常工作.
我的正常工作流程是切换到master分支,合并work分支中push的更改以及上游的更改.问题是我不希望我的特定chnages被推.当我合并我的work分支时,master这些更改也会合并.
到目前为止,我发现的唯一解决方案是不进行这些更改,work但这不是一个令人满意的解决方案.
我知道有人问过类似的问题,但我相信他们的问题的原因是不同的.我做了一个硬重置,因为我搞砸了我的代码非常糟糕
git reset --hard 41651df8fc9
Run Code Online (Sandbox Code Playgroud)
我做了一些更改,我做了一些提交,现在我正在尝试将所有这些提交推送到服务器中,我得到以下错误:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@git.somewhere.git'
Run Code Online (Sandbox Code Playgroud)
Git建议做一个git pull,这就是其他人向其他用户建议的内容.但是,我相信git pull会将我当前的代码与我不再需要的代码合并(头部修订版).我怎么能推动并忘记我之前的版本/版本?
git ×10
git-push ×10
github ×4
git-branch ×1
git-commit ×1
git-pull ×1
git-remote ×1
githooks ×1
push ×1