Git教程小白易学系列简化版(命令步骤)

相信现在做开发的各位对Git都不会陌生了吧,也许有的公司还在用SVN,但Git你一定也要学,Git是目前最流行的分布式版本控制系统,看看Github有多火就知道了,最近的B站后端部分源码泄露和996ICU真是让Github也跟着火得不行,这你还不来学习Git?

而且就我个人做前端的经验来看,基本上中大型项目都使用Git来作为版本控制系统了,这么多人用自然是个好东西。

之前我对Git也是一知半解,这段时间利用空闲时间恶补了一下Git,真的对Git有了新的认知,这里就给大家分享一下我总结出来的白话教程,简单易懂,如果你是没时间没精力去细细研究Git的人,那么恭喜你,看完我这个教程,基本的Git命令和操作你都能够完成,其实真实开发中也用不到太多的Git命令。


分布式版本控制

因为楼主是Windows系统,所以命令也都是Windows的写法,Mac好像是加上sudo? 反正差别也不是太大。

Windows:

安装完后设置name和email

git config --global user.name "Your Name"

git config --global user.email "email@example.com"

在文件夹创建git仓库

git init

添加文件到git仓库

git add 文件名(带后缀)//可反复提交

git commit -m '你提交的备注'

查看git仓库工作区的状态

git status 一般告诉你文件有没有修改什么的

查看git仓库文件修改后的内容

git diff 文件名

查看git仓库提交历史

git log

--pretty=oneline 简化行数

查看git仓库最新回退记录

git reflog

git仓库代码回退

git reset --hard 提交的历史id

历史id可以使用HEAD^替代

HEAD^上一个版本

HEAD^^上上个版本(依次类推)

GIT的暂存区和工作区

暂存区就是GIT的stage这个区域

工作区就是你git base的文件夹区域

代码提交后是到了GIT自动给你创建的master主分支上

撤销修改

没有add 没有commit 使用git checkout -- 文件名

add了 没有commit 使用git reset HEAD 文件名

add了 也commit了 使用git reset --hard 历史版本id

GIT仓库删除文件

add commit新文件后手动删除了工作区的这个新文件

1.如果想要完全删除

先删除GIT仓库的这个新文件再提交

git rm 文件名

git commit -m '你的备注'

2.如果不小心删除想要恢复(必须是你之前提交过这个新文件)

git checkout -- 新文件名

工作需要了解-GIT的远程仓库(针对第一次使用远程仓库的人)

1.注册github账号。

2.创建SSH Key。

ssh-keygen -t rsa -C "你的邮箱"

id_rsa是私钥,不要泄露

id_rsa.pub是公钥,无所谓

3.guthub使用公钥关联你本地的仓库。

步骤:

1.登陆GitHub,打开“Account settings”,“SSH Keys”页面。

2.然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。

3.点“Add Key”,你就应该看到已经添加的Key。

添加远程库

步骤:

1.登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库。

2.在Repository name填入(你想要取的远程库名),其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库

本地仓库关联远程库命令

git remote add origin git@github.com:michaelliao/learngit.git(这里换成你远程库的github链接)

PS:关联完成后,远程库的默认名字就是origin,不需要再次输入上面的一长串。

本地仓库文件推送到远程库

git push -u origin master

意思是把本地仓库的master分支里的东西推送到远程库

PS: -u是远程库是空的,第一次关联使用

之后如果本地仓库修改了内容,直接这样推送到远程库

git push origin master

当然大家去新公司的第一件事是什么?先配好所需环境,之后当然是拉代码到你本地了。

从远程库克隆代码

git clone 你公司给的github邮箱地址(你需要自己弄一个空文件夹,并且git base把文件夹变成本地GIT仓库)

分支管理工作

创建dev分支

git checkout -b dev(当然分支名可以自己取,公司协作一般是写自己拼音名)

PS: -b意思是创建这个分支并且直接切换到dev这个分支上

-b等于执行了2个步骤 git branch dev 创建dev分支 git checkout dev 切换dev分支

查看所有分支

git branch(其实现在很多IDE,比如VS都可以在左下角看到自己所在的分支)

合并分支

1.先要切换到想要保留的分支比如master分支

git checkout master

2.把dev分支合并到master主分支

git merge --no-ff -m '你的备注' dev(最好使用--no--ff来合并,因为可以看到合并记录)

删除分支

git branch -d dev //-d是必须的,等于执行delete命令

解决冲突

查看分支合并图

git log --graph

手动编辑文件成自己需要保留的内容再提交。

隐藏分支

git stash

恢复之前隐藏的分支

推荐:git stash pop 切换到隐藏的分支,执行这个命令,可以恢复的同时删除stash内容

git stash apply也可以恢复内容,但是不能删除stash内容,所以还要手动删除stash内容

查看分支被隐藏的内容

git stash list

强制删除分支(没合并过)

git branch -D 分支名

GIT多人协作流程

1.首先,可以试图用git push origin <branch-name>推送自己的修改;

2.如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

3.如果合并有冲突,则解决冲突,并在本地提交;

4.没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

5.如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。

git rebase

rebase操作可以把本地未push的分叉提交历史整理成直线;

rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

打标签

git tag 标签名(一般为v1.0这样的版本名)

查看标签

git tag

显示标签信息

git show 标签名

删除标签

git tag -d 标签名

推送标签到远程库

git push origin 标签名 //推送指定标签

git push origin --tags //推送所有标签

远程删除标签

1.本地删除标签

git tag -d 标签名

2.远程删除标签

git push origin :refs/tags/标签名

自定义Git

git命令显示颜色

git config --global color.ui true

git自定命令名

比如把git status改成git st

git config --global alias.st status

最后还想要仔细研究Git的,推荐一下完整学习教程-廖雪峰大佬的Git教程

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