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上的完整工作流程为:
- 从主分支(也叫做master分支或者dev分支)中新建一个分支
- 在分支副本上进行开发。
- 在开发完成后,提交该分支到本地仓库,再到远程仓库。
- 在远程仓库中,对两个分支进行合并。
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就可以轻松做到。
两种方式
-
用diff指令
#直接显示两个branch的区别,diff指令还有很多别的用法,甚至可以精确到某个文件的改动日志 git diff branch1 branch2
-
我是用的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远程分支操作记录的主要内容,如果未能解决你的问题,请参考以下文章