Git远程分支操作记录

Posted wodongx123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git远程分支操作记录相关的知识,希望对你有一定的参考价值。

文章目录

1. 本地仓库和远程仓库


在Git中,仓库分为本地仓库和远程仓库,其中,本地仓库在你的计算机中,远程仓库在网络上。
项目中的.git文件夹就是你的本地仓库。

当一个项目需要多个人共同开发的时候,git的实用性就会比svn更高一些。他可以多个人通过不同的分支共同维护一个项目。

当我们需要使用远程仓库的时候,需要先将远程仓库的地址加入到git中。

#remote是远程仓库相关指令 add是添加一个新的远程仓库
#后面的参数是远程仓库在你本地的名字name和其address
git remote add name remoteRepositoryAddress

#例,将我github上的SQLite项目取名origin后添加到本地
git remote add origin https://github.com/wodongx123/SQLite.git

2. 分支

一般来说,我们在项目上新开一个功能或者debug,在git上的完整工作流程为:

  1. 从主分支(也叫做master分支或者dev分支)中新建一个分支
  2. 在分支副本上进行开发。
  3. 在开发完成后,提交该分支到本地仓库,再到远程仓库。
  4. 在远程仓库中,对两个分支进行合并。

2.1 获取分支上的代码

分支和仓库一样,也分为本地分支和远程分支。如果我们需要获取一个远程的分支。

# 从远程上获取一个分支到本地,并且切换到该分支
# remoteBranchName是远程的分支名,name是你复制到本地后的分支名
# 远程分支名的填法是仓库名/分支名
git checkout -b name remoteBranchName

# 例,将远程仓库origin的master分支拉到本地取名为master
git checkout -b master origin/master
# 从远程上获取一个分支到本地,并且切换到该分支
# remoteBranchName是远程的分支名,localBranchName是你复制到本地后的分支名
# 远程分支名的填法是仓库名/分支名
git fetch origin remoteBranchName:localBranchName

# 例,将远程仓库origin的master分支拉到本地取名为master_temp
git fetch origin master:master_temp

# 例,将远程仓库origin的master分支拉到本地,也取名叫master
# 如果本地已经有了相同的分支,他会被存到一个叫做FETCH_HEAD的分支里面,这个分支用git branch不可见
git fetch origin master
# 如果本地已经有了分支,就要再将本地分支和临时分支FETCH_HEAD合并
git merge FETCH_HEAD

2.2 新建一个工作用的分支

branch相关的指令用于操作分支

# 以当前所在的分支为蓝本,创建一个新分支
git branch -c name

# 例,在master分支上创建一个叫做newBranch的新分支
git branch -c newBranch

checkout指令用于切换分支,刚才2.1描述的也是切换分支的方法

# 查看所有的本地分支
git branch
# 切换到目标分支
git checkout name

2.3 开发

我们开发的时候,往往会需要提交当前的进度到远程分支上,免得数据丢失

# 添加所有文件到版本控制
git add .
# 提交文件改动到本地仓库,Message是此次提交所需要的日志
git commit -m Message
# 将所有的改动从本地提交到远程仓库,如果远程仓库没有该分支,就会创建一个
git push remoteRepositoryName branchName

# 例
git push origin newBranch

2.4 检查代码改动

当我们开发完成后,通常代码已经commit了好几个版本了,这个时候,想要通过IDE本身的local History功能去查看代码的修改痕迹太过于繁琐。用git就可以轻松做到。

两种方式

  1. 用diff指令

    #直接显示两个branch的区别,diff指令还有很多别的用法,甚至可以精确到某个文件的改动日志
    git diff branch1 branch2
    
  2. 我是用的android Studio进行开发,或许IDEA可以参考:先创建一个新分支,然后将新分支回退到所有改动前的版本。这样就可以通过IDE自带的version control功能进行查看代码的改动了。

    # 创建分支
    git branch -c test
    # 切换到分支
    git checkout test
    # 查看提交的日志,每个commit后面都有一串字符,找到改动前的那个版本
    git log
    # 撤销某个commit之后的所有的commit,但不修改代码本身
    # reset也可以只对某个文件操作,让某个文件回退commit版本
    git reset --soft commitHash
    

    这样一来,git的版本控制被回退到了工作之前,但是我们写过的代码却还在。在IDE的GUI帮助下,应该会比直接用diff指令好查看(在Android Studio中,是有一个单独的version Control的GUI)。

    顺便一提, reset --hard 是连代码和commit一起回退到某版本。

以上是关于Git远程分支操作记录的主要内容,如果未能解决你的问题,请参考以下文章

实用的git操作记录

Git 常用命令手册

git实用的操作命令

git 相关操作的记录

Git工作中常用操作记录

Git工作中常用操作记录