我不是一个git master,但是我已经和它一起工作了一段时间,有几个不同的项目。 在每个项目中,我总是git clone [repository]git clone [repository]起,总是可以git pull ,只要我没有突出的变化,当然。

最近,我不得不恢复到以前的分支,并使用git checkout 4f82a29这样git checkout 4f82a29 。 当我再次准备好拉,我发现我必须将我的分支设置回主人。 现在,我不能使用直接git pull ,而是必须指定git pull origin master ,这很烦人,并向我表明我不完全了解发生了什么。

更改了哪些不允许我在没有指定origin master的情况下进行直接git pull ,以及如何将其更改回来?

更新:

-bash-3.1$ cat config
[core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = true
[branch "master"]
[remote "origin"]url = git@github.com:user/project.gitfetch = refs/heads/*:refs/remotes/origin/*

更新2:要清楚,我明白我的原始方法可能不正确,但我需要修复此回购,以便我可以再次使用git pull 。 目前,git pull导致:

-bash-3.1$ git pull
You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me either.  Please
name which branch you want to merge on the command line and
try again (e.g. 'git pull  ').
See git-pull(1) for details on the refspec.If you often merge with the same branch, you may want to
configure the following variables in your configuration
file:branch.master.remote = branch.master.merge = remote..url = remote..fetch = See git-config(1) for details.

我可以告诉git pull哪个分支合并,并且它可以正常工作,但git pull不像我在git checkout之前那样工作。


#1楼

不想编辑我的git配置文件我按照@ mipadi的帖子中的信息使用了:

$ git pull origin master

#2楼

还有一种配置Git的方法,它总是拉动并将等效的远程分支推送到当前检出到工作副本的分支。 它被称为跟踪分支, git ready建议默认设置 。

对于当前工作目录上方的下一个存储库:

git config branch.autosetupmerge true

对于所有Git存储库,没有另外配置:

git config --global branch.autosetupmerge true

有点神奇,恕我直言,但这可能有助于特定分支 始终是当前分支的情况

当您将branch.autosetupmerge设置为true并首次签出分支时,Git会告诉您跟踪相应的远程分支:

(master)$ git checkout gh-pages
Branch gh-pages set up to track remote branch gh-pages from origin.
Switched to a new branch 'gh-pages'

然后Git会自动推送到相应的分支:

(gh-pages)$ git push
Counting objects: 8, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 1003 bytes, done.
Total 6 (delta 2), reused 0 (delta 0)
To git@github.com:bigben87/webbit.git1bf578c..268fb60  gh-pages -> gh-pages

#3楼

我发现在mipadi和Casey的答案中很难记住确切的git configgit branch参数,所以我使用这两个命令来添加上游引用:

git pull origin master
git push -u origin master

这将为.git / config添加相同的信息,但我发现它更容易记住。


#4楼

如果您愿意,可以通过命令行设置这些选项(而不是编辑配置文件),如下所示:

  $ git config branch.master.remote origin$ git config branch.master.merge refs/heads/master

或者,如果您像我一样,并希望这是所有项目的默认设置,包括您将来可能要处理的项目,那么将其添加为全局配置设置:

  $ git config --global branch.master.remote origin$ git config --global branch.master.merge refs/heads/master

#5楼

git branch --set-upstream master origin/master

这会将以下信息添加到您的config文件中:

[branch "master"]remote = originmerge = refs/heads/master

如果你有branch.autosetuprebase = always那么它还会添加:

    rebase = true

#6楼

你当前的问题是如何让它成为主人,你需要做它所说的。 在分支配置中指定要从中提取的refspec。

[branch "master"]merge = refs/heads/master

#7楼

Git pull结合了两个动作 - 从被跟踪分支中的远程存储库中获取新提交,然后将它们合并到当前分支中

签出特定提交时,您没有当前分支,只有HEAD指向您上次提交的提交。 所以git pull没有指定所有参数。 这就是为什么它不起作用。

根据您的更新信息,您要做的是还原您的远程仓库。 如果你知道引入bug的提交,最简单的方法是使用git revert来记录一个新的提交,它撤消指定的bug提交:

$ git checkout master
$ git reflog            #to find the SHA1 of buggy commit, say  b12345
$ git revert b12345
$ git pull
$ git push

既然您想要更改服务器,我将假设您不需要重写历史记录来隐藏错误提交。

如果在合并提交中引入了错误,则此过程将不起作用。 请参阅如何还原故障合并 。


#8楼

[branch "master"] ,尝试将以下内容添加到repo的Git配置文件( .git/config )中:

[branch "master"]remote = originmerge = refs/heads/master

这告诉Git 2的事情:

  1. 当您在主分支上时,默认远程是原点。
  2. 在主分支上使用git pull时,如果未指定remote和branch,请使用默认远程(origin)并合并远程主分支中的更改。

我不确定为什么这个设置会从你的配置中删除。 您可能必须遵循其他人发布的建议,但这可能有效(或至少有帮助)。

如果您不想手动编辑配置文件,则可以使用命令行工具:

$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master

你怎么得到git总是从特定的分支拉?相关推荐

  1. git使用git pull不能把全部分支拉取到本地

    git将远程分支拉取到本地 sunleejon 2019-09-04 20:05:33 69 收藏 版权 git pull origin master:localbranch 命令格式如上,git p ...

  2. git切换到指定远程分支

    git切换到指定远程分支 我们在使用git进行开发的时候经常会遇到需要切换远程分支并且提交到远程指定分支的情况,现在记录下操作步骤. 查看远程所有分支 $ git branch -a git bran ...

  3. tar命令打包压缩时排除.svn .git .repo等特定文件/文件夹报错/未生效

    tar命令打包压缩时排除.svn .git .repo等特定文件/文件夹报错/未生效 当使用tar命令打包压缩的同时期望排除某类文件或文件夹时,可以使用--exclude参数. 在ubuntu20.0 ...

  4. 如何在Git中克隆所有远程分支?

    我有一个master和一个development分支,都被推送到GitHub . 我已经clone d, pull ed和fetch ed,但是除了master分支以外,我仍然无法获得任何东西. 我敢 ...

  5. git创建与管理远程分支

    git创建与管理远程分支 http://blog.csdn.net/fyh2003/article/details/7528157   gitbranch服务器compressionfileup 1. ...

  6. git学习(三)分支管理

    分支管理 git学习参考 廖雪峰官方网站 git基本操作,一篇文章就够了! 一.分支作用 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交 ...

  7. git创建新的branch分支

    1**.创建本地分支** git branch 分支名,例如:git branch 2.0.1.20120806 注:2.0.1.20120806是分支名称,可以随便定义. 2.切换本地分支 git ...

  8. Git之深入解析Git的杀手级特性·分支管理与分支变基的开发工作流以及远程分支的跟踪

    一.Git 分支简介 几乎所有的版本控制系统都以某种形式支持分支,使用分支意味着可以把工作从开发主线上分离开来,以免影响开发主线.在很多版本控制系统中,这是一个略微低效的过程,常常需要完全创建一个源代 ...

  9. git如何选择性合并_Git分支合并选择

    用Git进行多人协作开发时,必然会合并代码,解决冲突.然而合并代码也是需要点技巧的,如果对一些关键命令没有理解去使用的话,git的版本演进路线就会变得很乱,从而造成了日后维护的一些麻烦. Git上合并 ...

最新文章

  1. R语言为散点图添加凸包(convex hull):数据预处理(创建一个包含每组数据凸包边界的数据集)、ggplot2使用geom_polygon函数为可视化图像添加凸包(convex hull)
  2. HBase眼高手低从Shell到IDEA编程、心路笔记、踩坑过程
  3. Cocos2d 之FlyBird开发---GameData类
  4. 十四、JavaScript表单中的验证API
  5. 【CentOS7配置】如何设置:启动后自动获取网络连接、配置固定IP
  6. 3578. 最大中位数
  7. python-布尔数据
  8. [jQuery原理] jQuery入口函数
  9. 三菱plc字高八位和低八位_Switch好搭档,八位堂手柄上手体验
  10. thinkphp框架下的xml交互
  11. windows libusb打开失败_如何彻底解决windows更新问题!
  12. STM32F4 LTDC学习
  13. 自己手写WEB程序框架并执行
  14. OpenCV-图像处理(33、基于距离变换与分水岭的图像分割)
  15. shell脚本日常机房巡检
  16. JS代码简单一段即可破解QQ空间删除说说
  17. 基于深度学习的行人检测技术
  18. Q3面试嵌入式软件工程师的面试经验
  19. [BZOJ3717] [PA2014] Pakowanie [状态压缩][dp]
  20. HTML 显示梯形图片

热门文章

  1. Linux的IPC机制(一):共享内存
  2. Jquery基本知识点的总结
  3. 数据算法——Spark二次排序
  4. Swift字典Dictionary快速文档
  5. ( Android-大神博客)
  6. uniapp 安卓和IOS退出App的方法
  7. 嵌入式CGI开发之旅——CGI环境变量
  8. LeetCode 75. 颜色分类(Sort Colors)
  9. Android反编译apk并重新打包签名(Mac环境)
  10. sql_INSERT DELETE