分布式版本控制系统GIT

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


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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,869评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,716评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,223评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,047评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,089评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,839评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,516评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,410评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,920评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,052评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,179评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,868评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,522评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,070评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,186评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,487评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,162评论 2 356

推荐阅读更多精彩内容