Git 协作:Fetch Pull Push Branch Remote相关

前言

学习git的时候,我们首先学习的是最常用的,自己独立开发Software时用的命令:

git init                                                                 #初始化git仓库
git add <file_name>                                              #将文件添加到暂存区
git rm <file_name>                                              #将暂存区的该文件删除
git commit -m "<commit info>"                             #将暂存区的修改提交到当前分支
git status                                                             #查看当前状态
git reset --hard <commit_id>                                #切换到commit_id对应的版本
git checkout -- <file_name>                                  #撤销file_name文件的工作区修改
git reset HEAD <file_name>                                  #撤销暂存区的修改,将其放回工作区
git diff HEAD -- <file_name>                                 #查看工作区和版本库里面file_name对应文件最新版本的区别
git checkout <branch_name>                                 #切换到该branch
git checkout -b <branch_name>                             #创建名为<branch_name>的branch并切换到该branch
git clone <remote_git_address>                              #克隆远端仓库到本地

而在实际工作中,我们往往要与他人一起合作开发/Debug。这个时候,就得学习在合作开发/Debug的情况下遇到的各种情况该怎么办,什么样的Git命令能解决我们的问题。

场景1: 需要拉取陌生远端分支到本地。我们本地有一个自己的repo, 此时同事遇到一个比较难的Bug想请你帮忙一起看看,但是这个Bug在你自己的repo的branch上没有,于是同事将其branch推送到了他自己的Github远端仓库里,然后把远端仓库的git address和branch name发给你了。此时我们该怎么办呢?

我们应该:

1. 添加一个远端源 git remote add <created_remote_name> <github_repo_git_address>
2. 将远端源的信息拉过来 git fetch <created_remote_name>
3. 拉取远端源repo的一个分支到本地分支 git checkout -b <local_branch_name> <created_remote_name>/<branch_name>

场景2: 本地与远端同一分支提交历史不一致。本地与远端同一分支提交历史不一致。多个人在同一个分支上协作时,出现冲突是很正常的,比如现在有一个项目由我和A一同开发。我在修复了一个bug以后准备提交,现在准备推送到远端。push失败了,发现A在我之前已经提交了,我本地master分支的提交历史已经落后远端了,需要先pull一下,与远端同步后才能push。

直接执行 git pull --rebase

场景3:其他场景

将目标分支的代码Merge到本地分支 git merge <object_branch>
 (if has conflicts and want to just cover the current code with object branch code, add "--strategy-option theirs" parameter)
将本地分支代码推送到远端源指定分支 git push <local_branch_name> <created_remote_name>:<branch_name>
 (if want to cover the remote code with local code, add "-f" parameter)

原文地址:https://www.cnblogs.com/ArsenalfanInECNU/p/11551803.html

时间: 2024-10-07 05:51:45

Git 协作:Fetch Pull Push Branch Remote相关的相关文章

git fetch, merge, pull, push需要注意的地方

在git操作中,我们经常会用到fetch, merge, pull和push等命令,以下是一些我们需要注意的地方. 给大家准备了参考资料: 1. What?s a Fast Forward Merge?:https://sandofsky.com/images/fast_forward.pdf 2. Understanding the Git Workflow:https://sandofsky.com/blog/git-workflow.html 3. Understanding Git: M

第二章-第二题(每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别。)--by侯伟婷

第二题:每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令.比较项目的新旧版本的差别. 下面我将自己的练习结果和个人感受记录如下: 第一步:安装Git,设置自己的账号和邮箱,参见Git教程-廖雪峰的官方网站,网址如下参考资料1所示. 第二步:在Git中新建repository,名叫HelloWorld,并进行初始化,如图所示. 第三步:在HelloWorld版本库中新建了helloWorld.txt文件,用以练习G

第二章-第二题(练习使用git的add/commit/push/pull/fetch/clone等基本命令)--梁绍楠

题目描述: 每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令.比较项目的新旧版本的差别. 使用步骤: (1)创建版本库 选择一个合适的地方,创建一个空目录HelloWorld.而后通过git init把这个目录变成Git可以管理的仓库(目录下会多出了一个.git目录,该目录是git跟踪管理版本库的,勿轻易修改): 编辑hello文件,内容如下: (2)将文件hello放到git仓库 首先,需要设置用户名.邮箱信息

第二章-第二题(练习使用git的add/commit/push/pull/fetch/clone等基本命令)-By郭青云(未完待续)

题目描述: 每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令.比较项目的新旧版本的差别. 使用步骤: 未完待续...... 参考文件:http://blog.csdn.net/u012575819/article/details/50553501

Git 少用 Pull 多用 Fetch 和 Merge(转)

英文原文:git: fetch and merge, don’t pull This is too long and rambling, but to steal a joke from Mark Twain Blaise Pascal I haven’t had time to make it shorter yet.  There is some discussion of this post on the git mailing list, but much of it is tangen

Git 少用 Pull 多用 Fetch 和 Merge(转)

This is too long and rambling, but to steal a joke from Mark Twain Blaise Pascal I haven’t had time to make it shorter yet.  There is some discussion of this post on the git mailing list, but much of it is tangential to the points I’m trying to make

Git 一次性 pull push 所有的分支

/********************************************************************************* * Git 一次性 pull push 所有的分支 * 说明: * 使用Git一次性推送所有的分支,之前一般都是单独推送一个分支,现在是多分支操作, * 可能涉及到多分支推送,得找个办法解决. * * 2016-12-22 深圳 南山平山村 曾剑锋 ******************************************

Android Studio中Git更新本地的远程(remote)branch列表?

比如你同事在Git的remote branch中新增branch xxx,但是你发现你在Android Studio中查看存在的branch时,并看不到他增加的branch,如果查看branch,请戳这:Android Studio如何查看branch列表及切换branch , 这里再科普一下命令行的方式:git branch -a或git branch -r 那如果才能看到新增的branch呢,有两种方式: 方式一:git fetch 方式二:git remote update origin

linux服务器git pull/push时避免频繁输入账号密码

1.先cd到根目录,执行git config --global credential.helper store命令 [[email protected] ~]# git config --global credential.helper store 2.执行之后会在.gitconfig文件中多加红色字体项 [user] name = wang email = [email protected] [credential] helper = store 3.之后cd到项目目录,执行git pull命