在遥控器上有一个我想要工作的分支.它已经老了,我的本地机器上不再有它的旧版本了.它远远落后于大师.每当我试图拉它时,我都会遇到冲突.我只想在本地系统上创建远程分支的精确副本.为什么会导致冲突?
我试过了:
git pull origin branch_name:branch_name
Run Code Online (Sandbox Code Playgroud)
这在我的本地机器上创建了一个具有正确名称的新分支,但它导致了冲突.
git pull --help
将来自远程存储库的更改合并到当前分支中.
我拉git存储库以获取代码的离线视图,并希望获得不同分支的更新代码.如何在不手动拉动每个分支的情况下轻松拉动所有分支的代码?
--all - 获取所有遥控器.
- 所有人都没有帮助.
我有一个奇怪的问题.我使用TortoiseGIT(Win7),我的存储库被放置在一个vritual服务器(Debian)上,我使用gitolite和SSH密钥.
我可以clone存储库到我的电脑,我可以运行Fetch,Push,Commit,Sync...一切,但尝试时Pull从服务器的变化Pushed被其他贡献者,出现以下错误:
git.exe pull -v --progress "origin"
fatal: 'pull' appears to be a git command, but we were not
able to execute it. Maybe git-pull is broken?
git did not exit cleanly (exit code 128)
Run Code Online (Sandbox Code Playgroud)
我不明白,为什么只是pull命令不工作..感谢任何帮助.
我可以使用贡献Pull的更改来创建存储库的克隆..但是不能在我的PC上创建存储库的更改.
我的同事们遇到了一些问题,在进行同一个项目时,我的提交历史变得不必要了.问题是git pull合并非ff,如果只有一个提交差异等等.所以我喜欢失败git pull如果ff是不可能的,以便开发人员可以查看提交并找出是否合并或rebase更合适.
我的问题:有没有办法在任何分支上为所有git pull命令默认设置-ff-only而不是git merge?我知道别名,但这不是我想要的.
我想实现的东西,这将使我的结果git pull或git fetch && git merge.我得到了这个部分工作,但我遇到的问题是,在运行以下代码后,当前的repo仍然认为有本地更改要提交.
据我所知,我相信我可能没有从正确的HEAD创建带注释的提交,或者我需要再次提交?(我不确定).
我的代码看起来像这样,我被困住了:
func (repo *Repo) Pull() error {
// Get remote
remote, err := repo.Remotes.Lookup("origin")
if err != nil {
remote, err = repo.Remotes.Create("origin", repo.Path())
if err != nil {
return err
}
}
// Get the branch
branch, err := repo.Branch()
if err != nil {
return err
}
// Get the name
branchName, err := branch.Name()
if err != nil {
return err
}
if err := …Run Code Online (Sandbox Code Playgroud) 这就是我所做的:
git fetch origin
git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 2 commits.
git pull
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
但git pull似乎没有用!这是我尝试时获得的输出git checkout master:
git checkout master
Already on 'master'
Your branch is ahead of 'origin/master' by 2 commits.
Run Code Online (Sandbox Code Playgroud)
为什么是这样?我如何解决它?
从基于团队的Git远程存储库中提取时,我收到以下消息:
"C:\Program Files (x86)\Git\bin\git.exe" pull --progress "origin" +refs/heads/master:refs/remotes/origin/master
Updating 71089d7..4c66e71
error: Your local changes to the following files would be overwritten by merge:
Source/Reporting/Common/Common.Dal.csproj
Please, commit your changes or stash them before you can merge.
Aborting
Done
Run Code Online (Sandbox Code Playgroud)
Git中哪些规则(或功能),确保了我在工作目录中修改该文件确实不得到由拉覆盖?
换句话说,在什么情况下它会被拉动覆盖?或者...我需要做什么才能强制拉动覆盖我刚刚修改过的文件?
我们经常从master分支到大型功能分支.这些功能分支通常在与master合并之前工作数天甚至数周(尽管最佳实践要求我们需要尽可能频繁地合并,实际上它可能会有所不同).
因此,我们尽可能地尝试git pull --rebase origin master以便与master保持更新.但是,我们偶尔会遇到以下情况:
1)从master分支到分支feature/new-branch
2)进行更改feature/new-branch并提交更改.
3)git pull --rebase origin master把提交放在主人的头上.修复任何冲突和git add .+git rebase --continue
4)进行更多更改feature/new-branch并提交更改.
5)git pull --rebase origin master再次.
但是,在步骤5),该过程要求我们从步骤3)修复相同的冲突.哪个可能很乏味.
这是正确的最佳实践git流程,如果没有,我们还能做些什么来提高流程效率?
我在采取新措施时面临以下问题。( git pull)
错误:无法更新引用“refs/remotes/origin/xyz”:无法为“.git/logs/refs/remotes/origin/xyz”创建目录:没有这样的文件或目录
我检查了特定位置,既没有权限问题,也不存在这样的目录。
Jfyi 我已经搜索过类似的线程,但这些线程对我来说不起作用,其中大多数与追加、删除等相关。
我对此深感困惑,任何帮助将不胜感激。
git-pull ×10
git ×8
branch ×1
git-branch ×1
git-flow ×1
git-rebase ×1
git-refspec ×1
gitolite ×1
libgit2 ×1
merge ×1
pull ×1
tortoisegit ×1