我想从上游存储库的分支中提取更改。我已经使用以下命令设置了上游存储库:
git remote add upstream http://URL-of-master-repo.git
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用来拉取更改
git checkout my-local-branch
git fetch upstream remote-branch
git merge upstream/remote-branch
Run Code Online (Sandbox Code Playgroud)
但文件仍然没有出现在我的磁盘上,但我遇到了冲突:
Auto-merging minimal-build-config.cmake
CONFLICT (content): Merge conflict in minimal-build-config.cmake
Automatic merge failed; fix conflicts and then commit the result.
Run Code Online (Sandbox Code Playgroud)
如何正确解决冲突以便能够从上游分支获取文件?
我正在尝试定期同步git裸存储库,我的本地分支使用"--track"选项创建.这是我的配置(没有不必要的东西):
[core]
bare = true
[remote "origin"]
url = git@github.com:Ummon/D-LAN.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "website"]
remote = origin
merge = refs/heads/website
Run Code Online (Sandbox Code Playgroud)
我必须使用'cp'命令来更新本地分支:
git fetch --all
cp -r refs/remotes/origin/* refs/heads
Run Code Online (Sandbox Code Playgroud)
有更优雅的解决方案吗?
所以情况如下:
$ git status #On
branch master
#你的分支在[x]提交之前位于'origin/master'之前.
#
关于SO的问题已有几个问题,但似乎没有一个问题专门针对我所拥有的场景类型.其中一个问题的答案最接近,但没有详细说明.
我会直接引用它:
如果在执行"git pull remote branch"后收到此消息,请尝试使用"git fetch"进行跟进.
Fetch似乎更新了远程分支的本地表示,当你执行"git pull remote branch"时不一定会发生这种情况.
这个提示确实有效.但"不一定会发生吗?" 为什么不?我需要了解这一点.什么拉不做?
我不想接管这个问题,所以这是我的详细情景:
涉及三台电脑.我开发的Mac,git repo(即origin/master)所在的家庭服务器以及从该服务器获取的Webfaction帐户.
我提交并且git push origin master仅在Mac上提交.作为正常工作流程的一部分,在Webfaction上运行的唯一命令是git pull origin master(作为Fabric部署脚本的一部分).我不修改那里的代码.我是一个独立的开发者,所以其他任何人都没有.
我偶尔会登录Webfaction并检查一些事情,包括a git status.不可避免地,我总是得到"你的分支在前面......"的信息.跑步git fetch使消息消失.
我将要添加git fetch到Fabric脚本来完成这个问题,但我想知道为什么需要这样做,特别是在源/主的只拉式克隆上.虽然我每天都使用基本功能,但我并不熟悉Git,所以我们将非常感谢新手友好的解释.
按要求更新,相关位来自config:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@[server_address]:[path/to/repo.git]
[branch "master"]
remote = origin
merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud) 我有一个git repo,我想做一个拉.git pull没有任何问题,我做正常.问题是我只想要一个特定的目录.我的想法是我可以使用.gitignore这样的规则的文件:
#Ignore all files
/
#Except the one I want
!/temp
Run Code Online (Sandbox Code Playgroud)
问题是这不起作用.这是正确的方法还是有更好的方法?
所以我有两个git回购.第一个是我们的框架(想想数据库抽象,函数),然后是我们新项目的另一个git repo.
我想将框架git repo包含到项目git中,并且根据GitHub帮助,这应该工作:
cd /project
git remote add framework git://github.com/username/Framework.git
git fetch framework
git merge framework/master
Run Code Online (Sandbox Code Playgroud)
问题是,当我进行合并时,它会从框架中提取所有文件,并将它们简单地转储到项目的根目录中.相反,我们怎样才能将框架文件合并到子目录中/project/framework/?
Git fetch和pull都在昨天停止工作在服务器上(AWS实例).
$ git fetch
ERROR: Repository not found.
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
该实例上有两个存储库克隆,两者都给出了相同的错误.git仍然适用于本地PC.
git remote -v在本地PC和服务器上提供相同的结果; ssh git@github.com按预期工作("嗨(名字)!您已成功通过身份验证,但GitHub不提供shell访问权限.")
行为有一个区别:git pull origin st+ [Tab]用于扩展到分支名称; 现在它扩展为当前目录中文件的名称(文件名与分支名称不同).
更新:我尝试重新创建远程:SSH版本仍然失败,但HTTP工作.
根据git邮件列表中的这个讨论,这实际上是GitHub网站上的一个问题.
UPDATE
输出 GIT_TRACE=1
############# Local results #############
$ GIT_TRACE=1 git fetch
setup: git_dir: .git
setup: worktree: c:/Projects/(local_path)
setup: cwd: c:/Projects/(local_path)
setup: prefix: (null)
trace: built-in: git 'fetch'
trace: run_command: 'ssh' 'git@github.com' 'git-upload-pack '\''(username)/(reponame).git'\'''
Enter passphrase for key '(keyname)':
trace: run_command: 'rev-list' '--quiet' '--objects' …Run Code Online (Sandbox Code Playgroud) 我无法使用plain克隆远程存储库
git clone path
Run Code Online (Sandbox Code Playgroud)
我收到了错误"The remote end hung up unexpectedly".我得到的完整信息是:
Cloning into 'xyzabc'...
remote: Counting objects: 4328, done.
remote: Compressing objects: 100% (3861/3861), done.
select: Not enough memory2192/4328), 123.71 MiB | 164.00 KiB/s
ffatal: The remote end hung up unexpectedly
atal: early EOF
fatal: index-pack failed
Run Code Online (Sandbox Code Playgroud)
我在网上寻找一个解决方案,在尝试了所有其他解决方案后,我们做了以下解决方案:
git clone --depth=1 path
Run Code Online (Sandbox Code Playgroud)
其次是
git fetch --unshallow
Run Code Online (Sandbox Code Playgroud)
现在克隆完全完成了.但是,当我尝试运行git fetch --unshallow来接收整个项目时,我收到错误:
fatal: --unshallow on a complete repository does not make sense
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么办请指导
刚添加远程仓库后,我尝试了git fetch remoteRepoName但是它返回了这个错误:
fatal: I don't handle protocol 'https'
我探讨了相关的问题,但其中大部分属于git clone这样,所以他们的答案在我的案例中不起作用.这是一个截图:
GIT fetch我遇到了一个大问题......看看这个
$ git fetch
From server:project
422b4cb..a04c062 master -> origin/master
$ git show-ref
ba113be885e66a5306d1646cd3db0801170c04f8 refs/heads/alpha-release
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/master
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/test
a04c062261beeb4a951337ebb58745945cac3562 refs/remotes/origin/HEAD
ba113be885e66a5306d1646cd3db0801170c04f8 refs/remotes/origin/alpha-release
a04c062261beeb4a951337ebb58745945cac3562 refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
而另一个git fetch:
$ git fetch
From server:project
+ a04c062...422b4cb HEAD -> origin/HEAD (forced update)
$ git show-ref
ba113be885e66a5306d1646cd3db0801170c04f8 refs/heads/alpha-release
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/master
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/test
422b4cbac3db2784c8f6e94ffd99c7afcda9122d refs/remotes/origin/HEAD
ba113be885e66a5306d1646cd3db0801170c04f8 refs/remotes/origin/alpha-release
422b4cbac3db2784c8f6e94ffd99c7afcda9122d refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
而另一个......
$ git fetch
From server:project
422b4cb..a04c062 master -> origin/master
$ git show-ref
ba113be885e66a5306d1646cd3db0801170c04f8 refs/heads/alpha-release
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/master
a04c062261beeb4a951337ebb58745945cac3562 refs/heads/test
a04c062261beeb4a951337ebb58745945cac3562 refs/remotes/origin/HEAD
ba113be885e66a5306d1646cd3db0801170c04f8 refs/remotes/origin/alpha-release …Run Code Online (Sandbox Code Playgroud) 这些是我执行的一系列步骤:
dc9afg2k)git fetch origin master && git merge origin mastergit checkout master git pull (这拉动了所有最近的变化)git fetch origin master && git merge origin mastergit reset --hard origin/mastergit checkout branch git blog
git reset --hard dc9afg2k (提交成功) git checkout mastergit log (这回到了2天前).git pull(master不是用当前更新origin/master).