版本控制器git的使用

1.git的定义

Git是一个分布式的版本控制系统,主要用于软件开发过程中的跟踪和管理文件的更改。git的整个框架如下:

  1. 工作区:即本地在电脑上能够直接看到的目录
  2. 暂存区:一般存在于.git目录的index文件,用于存放临时的改动,实际上就是一个文件,保存即将提交到文件列表中的信息
  3. 本地仓库:安全存放数据的位置,这里保存的所有提交版本的数据信息,使用一个HEAD指针指向最新的仓库的版本
  4. 远程仓库:托管代码的地方(github、gitee等),主要作用就是做远程的数据交换,让自己修改的代码其他人可见。
2.操作步骤

新建一个仓库有两个东西是自动创建的,一个为远程仓库的名称,默认是origin,这个也可以在.git/config文件中进行修改,在本地仓库会默认生成一个主干分支master,于远程的主干分支master对应。基本的步骤如下:

  • 首先本地修改好代码之后,可以通过git status来查看修改了那些文件,然后使用git add 文件名,将修改的文件推送至暂存区。(git add . 是推送当前目录下的全部文件)
  • 然后,推送至暂存区的代码通过git commit命令将代码推送至本地仓库,这样本地仓库就有了一笔你的提交记录了。
  • 最后,使用git push命令将本地仓库的修改推送至远程仓库(git push 远程仓库名称 本地分支:远程分支)。
3.git各版本的回退操作

上述的工作流程是一个完美的情况,但是也会出现一些意外情况,像修改的代码有问题但是已经推送到暂存区或本地仓库或远程仓库了,这时候就需要仅从代码的回退操作了。

  • 工作区代码的回退:直接重新修改就可以了,也可以使用 “ git checkout – .” 直接用本地仓库的代码把工作区的代码给覆盖掉。
  • 暂存区的代码回退:使用命令 “git reset HEAD 文件名”
  • 本地仓库的代码回退:使用命令“git reset --hard commitID”,回退到指定的一个版本上,同时可以通过“git reflog”查看历史记录,然后回退到reset之前。这里的commitID可以通过“git log”来进行查看。
  • 远程仓库的代码回退:先在本地仓库进行代码的回退操作,然后把修改后的代码强制推送到远程仓库中“git push -f …”
4.git的冲突处理

因为这是一个多人协同开发的过程,可能会出现A是在版本1的基础上做的开发,但是由于其他人的一个代码推送,导致远程的版本已经到了版本3了,此时如果你进行推送的话可能就会出现问题。

  • 情况1:冲突的地方不在同一个位置,可以先“git pull”一下更新本地的代码仓库,这里会自动的做一个merge操作,然后再把自己修改的部分“git push”上去。
  • 情况2:冲突的地方在同一位置,同样先“git pull”下来,然后自己在本地进行冲突的处理,然后再add commit push推送到远程仓库上去
5.分支的管理

无论是远程仓库还是本地仓库,默认都是存在一个主分支的,但是在开发的过程中,可能是会先在另外的分支完成开发的任务,然后再合并的主分支,这样可以避免对于主分支的污染。
相关的命令:

git remote   查看远程仓库的名称,默认是origin
git branch   查看本地的分支
git branch -r  查看远程分支
git branch -vv  查看本地分支与远程分支的对应关系
git checkout -b 本地分支名  远程仓库名/远程分支名    创建本地分支并指定关联远程仓库中的那条分支 
git branch -u 远程仓库名/远程分支名     将当前的本地分支与远程分支相关联
6.基本的一个工作流
  1. 在本地新建一个分支与远程的分支相互关联
  2. git pull 更新代码,将本地分支的代码更新到与远程分支一致
  3. 在自己的本地分支进行开发,将本地分支直接推送到远程分支
  4. 直接使用命令“git push origin 本地分支名” 这样就会在远程分支中也创建一个同名的分支,然后提MR(merge request)请求将该远程分支的代码合并在指定的远程分支中,然后请求相关的人员进行CR(code review)。或者也可以“git push origin 本地分支名:远程分支名”新建一个远程分支。
    5.删除自己推送的远程分支 “git push origin 空格:对应的远程分支”

git教程
git的四个工作区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值