美文网首页
分布式版本控制系统GIT

分布式版本控制系统GIT

作者: Viaphlyn | 来源:发表于2017-03-26 10:29 被阅读21次

分布式版本控制系统与集中式版本控制系统的不同:


clipboard.png

首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库
多个人如何协作:比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

clipboard2.png clipboard3.png

1、创建一个版本库

  • $mkdir file
  • $cd file
  • $pwd(用于显示当前目录)

2、初始化GIT仓库

  • git init

3、添加文件到GIT仓库

  • git add file(可反复使用添加多个文件)
  • git commit-m "wrote a readme file xxx"提交完成

4.修改

  • git status(查看当前工作区状态)
  • git diff xxx(查看修改内容)

5、版本回退

  • HEAD(当前版本)
  • HEAD^(上一个版本)
  • HEAD^^(上上个版本)
  • HEAD~100(往上100个版本)
  • git log(查看历史记录,以便确定要回退到哪个版本)
  • git log --pretty=oneline(简略看历史记录)
    *git reflog(查看每一次命令历史,以便确定要回到未来的哪个版本)
  • git reset --hard commit id(HEAD..)(回到某个版本)

6、删除修改

  • git checkout -- file(丢弃工作区的修改,注意两空格,还未git add 到工作区)
  • git reset HEAD file(丢弃暂态区的修改,然后在用git checkout -- file丢弃工作区)
  • git reset -- hard commit id(丢弃已经提交的,但前提是没有推送到远程库)

7、删除文件和恢复

  • rm file(删除工作区的文件,此时还存在版本库里)
  • git rm file \ git commit -m"file"(删除版本库里的并提交)
  • git checkout -- file(误删,恢复到最新版本,但是会丢失最近一次提交后你修改的内容)

8、添加远程库

  • git remote add origin git@server-name:path/repo-name.git(关联远程库)
  • git push -u origin master(第一次推送master分支的所有内容)
  • git push origin master(以后每次本地提交之后,有必要时可以直接使用此推送最新修改)
    ps:要注意路径是否正确,是否提交了

9、克隆远程库

  • git clone git@...(仓库的地址)

10、创建和合并分支

  • git banch(查看分支)
  • git banch name(创建分支)
  • git checkout name(切换分支)
  • git checkout -b name(创建+切换分支)
  • git merge name(合并某分支到当前分支)//fast forward这次合并是快进模式
  • git branch -d name(删除分支)
  • $ git log --graph --pretty=oneline --abbrev-commit(看分支合并图)
    *git merge --no-ff -m "merge with no-ff"dev(用--no-ff参数合并分支,禁用Fast forward)
    //合并分支时,加上--no-ff参数可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

11、解决冲突

  • 即在一个分支上的修改和主支上的修改不同步,即保留一个版本或者再改然后再添加提交

12、分支管理

  • 小伙伴们平时都在分支工作,时不时合并一下,master分支应该很稳定,只用来发布新版本
clipboard4.png

13、bug分支

修复分支时通过创建新的分支进行修复然后合并最后删除
当手头工作没有完成时,先把现场工作git stash一下,然后去修的bug,修复后再git stash pop(=git stash apply恢复+git stash drop删除)回到工作现场

  • git stash
  • git stash list(查看)
  • git stash pop

(git stash apply、git stash drop)

14、feature分支

  • 开发一个新feature,最好新建一个分支
  • 如果要丢弃一个没有被合并过的分支,可以通过
  • git bran -D branch-name(强行删除)
clipboard5.png

15、多人协作

  • git remote(查看远程消息)
  • git remote -v(更详细的查看)
  • git push origin branch-name(从本地推送分支)
  • git pull(如果推送失败,先抓取远程的新提交,但如果有冲突,要先解决冲突,//有可能要 建立本地分支和远程分支的关联)
  • git checkout -b branch-name origin/branch-name (本地和远程分支的名称一样最好)
  • git branch --set-upstream branch-name origin/branch-name(建立本地分支和远程分支的关联)

16、标签管理

  • git tag <name>(新建标签,默认为HEAD,也可以指定一个commit
  • id(通过git log --graph --pretty=oneline --abbrev-commit找))
  • git tag -a <tagname> -m"balabala"(指定标签信息)
  • git tag -s <tagname> -m "balabala"(用PGP签名标签)
  • git tag( 查看所有标签)
  • git show <tagname>(查看标签信息)
  • git push origin <tagname>(推送一个本地标签)
  • git push origin --tags(推送全部未推送过的本地标签)
  • git tag -d <tagname>(可以删除一个本地标签)
  • git push origin :refs/tags/<tagname>(删除远程标签(已推送到远程的要先删除本地再删除远程))

17、GITHUB

clipboard6.png

git clone git@github.com:Viaphlyn/bootstrap.git

clipboard7.png

18、自定义git

让git适当显示颜色

  • git config --global color.ui true

19、忽略特殊文件

clipboard8.png clipboard9.png

20、配置别名

  • git config --global alias. y your
clipboard10.png

相关文章

  • Git学习笔记-基础知识

    Git的特点 分布式版本控制系统 Git是分布式版本控制系统(Distributed Version Contro...

  • git的及基本使用

    git 版本控制系统(VCS) 本地式版本控制系统 集中式版本控制系统 SVN 分布式版本控制系统 Git g...

  • Git的介绍以及安装

    1. 什么是Git? Git:一种分布式版本控制系统。 2002 年,linux使用分布式版本控制系统BitKee...

  • 最牛X的Git

    Git相关概念: Git是目前世界上最先进的分布式版本控制系统!!! 开发语言:C Git是分布式版本控制系统:分...

  • 3. Git初步

    1.Git是什么 Git(分布式版本控制系统)Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、...

  • git

    什么是gitgit是分布式版本控制系统。分布式版本控制系统也还有svn。Git使用和分支管理策略 git clon...

  • 01、版本管理-GIT

    一、版本控制 二、版本控制软件 GIT 分布式版本控制系统 SVN 集中式版本控制系统 三、git安装 四、win...

  • 01、版本管理-GIT

    一、版本控制 二、版本控制软件 GIT 分布式版本控制系统 SVN 集中式版本控制系统 三、git安装 四、win...

  • 新手如何使用git

    GIT (分布式版本控制系统) Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从...

  • 版本控制系统

    学习 Git 之前 我们需要理解Git 是一个分布式版本控制系统 这句话,什么是 版本控制系统,什么又是 分布式版...

网友评论

      本文标题:分布式版本控制系统GIT

      本文链接:https://www.haomeiwen.com/subject/gneqottx.html