请选择 进入手机版 | 继续访问电脑版

Git - 分布式版本控制系统(基础)

[复制链接]
欣然自乐 发表于 2020-12-31 20:27:09 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
版本控制:

最常见的就是寻常写文章会定名:修改1.doc, 修改2.doc,各种版本很难管理,如果某个版本举行修改,就更欠好管了。版本控制就能管理这个问题。
分布式与会合式版本控制:

  会合式:版本库是会合存放在中央服务器的,干活时,先从中央服务器拉代码,写完再push到中央服务器上。必须在联网的情况下工作。
  分布式:没有中央服务器的概念,每个人的电脑上都有完整的版本库,不需要联网,因为版本库就在自己的电脑上。A和B同时修改代码,修改完互相传送一下修改的部门就可以了。分布式的安全性比力高,如果自己电脑版本库丢了,如别人那里copy一下就可以了,但会合式如果中央服务器挂了,所有人都没法工作。但实际使用很少会两个人互传修改代码,也是有一台充当“中央服务器”的电脑,但它的作用仅仅是互换修改代码,没有他也是一样工作的。
 接下来就是学习Git的详细操作:在工作中,我们都是有个远程堆栈的,每台呆板都从这个堆栈copy一份原始版本,git clone一下就可以。
版本库repository:可以明确为一个目录,该目录下的所有文件都被Git管理,增删改Git都会记录跟踪,甚至可以还原。
  第一步:创建一个版本库
$ mkdir learngit
$ cd learngit
$ pwd                                                                                                 //显示当前目录
   第二步:把该目录酿成Git可以管理的堆栈
$ git init                                  //当前目录下会多个.git的目录,这个目录就是跟踪管理版本库的,没看到.git有大概隐藏了
  第三步:添加文件,准备一个readme.txt文件,放在版本库目录下
$  git add readme.txt               //添加指定文件,没显示就添加乐成,文件名与文件名中隔断空格,可以添加多个文件
//$ git add .                              //添加所有文件
$  git commit -m"Git学习”        //提交文件到堆栈,-m反面跟的是备注,提醒自己这次提交的内容是什么。
  第四步:隔了好久,我忘记自己提交过什么了,怎么办?查汗青记录
$  git log                                              //显示从最近到最远的提交日志。你会看到commit id(这是十六进制)
  第五步:我想退回到某个版本的状态
$ git reset --hard commitId                 //复制你想退回的谁人版本的commitid 
$ cat readme.txt                                 //检察文件内容是否退回正确
$ git reflog                                          //检察命令汗青
工作区和暂存区:

       我们在电脑上能看到的目录实在是个工作区,.git不算工作区,就是个版本库,版本库里存了许多东西,此中有个stage的暂存区,尚有Git自动创建的第一个分支master和指向master的一个指针HEAD。
       我们第一步往版本库里git add的时候,实在是把文件修改到暂存区里, 第二步git commit的时候,实在是把暂存区里的修改一次性提交到当前分支,即master分支。
        git add的时候工作区不是干净的,你可以git status看一下,但是,git commt的时候工作区是干净的。记着:Git管理的是修改,不是文件
打消修改:
  在没有add之前,即没有进入暂存区
$ git checkout  --                  //可以扬弃工作区的修改,固然也可以手动恢复原样
已经进入暂存区
$ git reset HEAD                       //先把暂存区的文件恢复到工作区
$ git checkout   --                             //再将修改的文件恢复原样
 删除文件:
  很简朴,比如一不小心把test.txt添加进了当前分支
$ git rm test.txt
$ git commit -m"删除文件” 
 分支管理:每一次的commit,Git都会把他们串成一条时间线,这个时间线就是一个分支,即为主分支master,Git用master指向最新的提交,再用HEAD指向当master,来确定master为当前分支。
  $ git checkout -b dev               //-b小时创建并切换到dev分支
//$ git switch -c dev                 //这种命令也是一样的,创建并切换到dev分支
$ git branch                             //检察当前所有分支
$ git checkout master
$ git merge dev 
$ git branch -d dev                   //把dev上的提交merge到master后就可以删除dev分支了
管理辩论:
   Git用标志出差异分支的内容,修改辩论再提交就可以了。
 Rebase变基:Git的提交汗青不能是一条干净的直线的时候
Tag:容易辨识,究竟commit id是个十六进制的数。让你找出上周三提交的commit id 为128.....的代码,你会很费事,但如果说你找出r1.1的代码,就容易多了。
  $ git checkout master                                   //切换到要打tag的分支
$ git tag r1.1                                                 //打上tagr1.1
$ gt tag                                                         //检察目前所有的tag
  如果某一次的commit 忘记打tag了,怎么办?
找到谁人commit id
$ git tag r1.2 commit-id                                   //带上id就可以了
$ git tag -a r1.3 -m"测试” commit-id                //-a表示指定标签名,-m表示指定说明文字
$ git tag -d r1.3                                               // 删除tag                              
$ git push origin r1.2                                      //创建的tag只生存在当地,要提交的远程需要push一下
$ git push origin -tags                                     //可以一次性推送全部未推送到远程的当地tag
参考来源:https://www.liaoxuefeng.com/wiki/896043488029600
举行了自己的总结,目前工作中常用到的就是这些,以后遇到其他情况再做增补。 

来源:https://blog.csdn.net/zzznodoit/article/details/101212213
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )