git pull origin master和之间有什么区别git pull origin/master?
我需要将两个Git存储库合并到一个全新的第三个存储库中.我已经找到了很多关于如何使用子树合并进行此操作的描述(例如JakubNarębski关于如何合并两个Git存储库的答案?)并遵循这些说明大多数工作,除了当我提交子树合并所有文件从旧存储库记录为新添加的文件.我可以在旧的存储库中看到提交历史记录git log,但如果我这样做git log <file>,则只显示该文件的一次提交 - 子树合并.从对上述答案的评论来看,我并不是唯一一个看到这个问题的人,但我发现没有公开的解决方案.
有没有办法合并存储库并保持个别文件历史记录完整?
在跟踪分支的上游存在更改,但是当我键入git status它时表示我的本地分支是最新的.这是新的行为,我是否更改了配置设置,或者出了什么问题?
谢谢您的帮助.
ubuntu@host:/my/repo# git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
ubuntu@host:/my/repo# git pull
remote: Counting objects: 11, done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 11 (delta 6), reused 0 (delta 0)
Unpacking objects: 100% (11/11), done.
From bitbucket.org:my/repo
1234567..abcdefg master -> origin/master
Updating 1234567..abcdefg
Fast-forward
file1 | 1 -
file2 | 43 +++++++++++++++++++++++++++++++++++++++++++
file3 | 21 ++++++++++++---------
file4 | 21 ++++++++++++---------
4 files changed, 67 …Run Code Online (Sandbox Code Playgroud) 我运行'git branch -r'然后得到
产地/ BRANCH1
产地/ BRANCH2
在手册页中,-r选项将"列出或删除(如果与-d一起使用)远程跟踪分支".因此origin/branch1和origin/branch2被称为远程跟踪分支.但是,您无法直接提交到远程跟踪分支(将创建匿名分支).远程跟踪分支在运行'git fetch'时只跟踪远程分支.
这里的语义对我来说有点模糊.如果我那么
git checkout -b branch1 origin/branch1
我得到以下输出:"Branch branch1设置为从原点跟踪远程分支branch1.切换到新分支'branch1'"
这是我的问题,尽可能详细地说明是什么让我感到困惑......由于branch1设置为从原点跟踪远程分支branch1,'branch1'因此被视为远程跟踪分支?如果是这样,那么这与'origin/branch1'在运行'git branch -r'时已被列为远程跟踪分支这一事实相冲突吗?据我所知,存在本地(主题)分支或远程跟踪分支.当运行'git checkout -b branch1 origin/branch1'时,我是通过提取方式创建一个跟踪远程分支的本地(主题)分支(我可以在其上添加提交)吗?运行'git branch'现在给出:'*branch1',并且运行'git branch -r'仍然给出'origin/branch1'和'origin/branch2'.我创建了branch1来添加提交和跟踪origin/branch1.哪个被认为是远程跟踪分支,'branch1'来自'git branch'的输出,'origin/branch1'来自'git branch -r'的输出?
精通git的人可以帮助我理解repo和branch之间的区别.我最近被介绍给git并且有点难以理解它们.有人告诉我克隆一个远程仓库(例如foo)到我的本地盒子.然后从中创建一个本地分支.在分支上工作(更新/创建/删除文件)并添加/提交/推送到远程服务器(例如bitbucket).在第二组眼睛审查分支并说好.然后它被合并到开发或主分支.
那么一个存储库在这张图片中起什么作用呢?对我来说,我运行的所有操作都是针对分支...
我目前正在从udacity上学习GIT和GITHUB课程。我真正感到困惑的一件事是,根据我的理解,远程和分支之间的区别是什么,因为两者对我来说意义相同。
我有两个遥控器和两个本地分支机构:
这是在我的 .git/config 文件中:
...
[remote "origin"]
url = http://my.gitlab.com/nandoquintana/repo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[remote "github"]
url = https://github.com/nandoquintana/repo.git
fetch = +refs/heads/*:refs/remotes/github/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "mirror"]
remote = github
merge = refs/heads/master
[push]
default = tracking
Run Code Online (Sandbox Code Playgroud)
这是“git Remote show origin”的输出:
$ git remote show origin
* remote origin
Fetch URL: http://my.gitlab.com/nandoquintana/repo.git
Push URL: http://my.gitlab.com/nandoquintana/repo.git
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local …Run Code Online (Sandbox Code Playgroud)