GIT

创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit

通过git init命令把这个目录变成Git可以管理的仓库:

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

编写一个readme.txt文件,内容如下:

Git is a version control system.
Git is free software.

放到learngit目录下(子目录也行) 放到Git仓库只需要两步。

第一步,用命令git add告诉Git,把文件添加到仓库:

$ git add readme.txt

第二步,用命令git commit告诉Git,把文件提交到仓库:

$ git commit -m "wrote a readme file"
[master (root-commit) cb926e7] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

git status命令可以让我们时刻掌握仓库当前的状态
$ git diff readme.txt查看具体修改了什么内容

提交修改和提交新文件是一样的两步

查看log

$ git log
$ git log --pretty=oneline

版本回退

HEAD表示当前版本,,上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100。

$ git reset --hard HEAD^
$ git reset --hard 3628164

查看所有版本和log

git reflog

查看工作区和版本库里面最新版本的区别

git diff HEAD -- readme.txt

场景1 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时

git checkout -- file

场景2 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令

git reset HEAD file

就回到了场景1,第二步按场景1操作。

删除文件 分两步

$ git rm test.txt
$ git commit -m "remove test.txt"

添加所有

git add -A

提交所有

git commit -am "log"

本地仓库和远程仓库关联

$ git remote add origin git@github.com:michaelliao/learngit.git

移除远程仓库

git remote remove origin  

把本地库的所有内容推送到远程库上:第一次要加-u参数,以后可不加

$ git push -u origin master

从远程仓库克隆文件到本地库:

$ git clone git@github.com:michaelliao/gitskills.git

分支

查看分支:

git branch

创建分支:

git branch <name>

切换分支:

git checkout <name>

创建+切换分支:

git checkout -b <name>

合并某分支到当前分支:

git merge <name>

合并分支时,加上--no-ff参数就可以用普通模式合并,Git就会在merge时生成一个新的commit,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

$ git merge --no-ff -m "merge with no-ff" dev

解决冲突方法 :修改内容,再添加到缓冲区,再提交

删除分支:

git branch -d <name>

用带参数的git log也可以看到分支的合并情况:

$ git log --graph --pretty=oneline --abbrev-commit

标签 tag

查看tag

git tag

添加tag

git tag -a v2.3.0 -m "log"

删除tag

git tag -d v2.3.0 

推送远程

git push origin v1.0
git push origin --tags  推送所有tag

如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:

git tag -d v0.9

然后,从远程删除。删除命令也是push,但是格式如下:

$ git push origin :refs/tags/v0.9

编辑指定tag

git checkout  -b  branch_name tag_name

工作现场

Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

保存工作现场:

$ git stash

查看保存的工作现场:

$ git stash list

恢复工作现场:

$ git stash apply 恢复后,stash内容并不删除
$ git stash drop  删除

或者

$ git stash pop  恢复的同时把stash内容也删了

廖雪峰的blog
小悠学习

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

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,412评论 9 163
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,584评论 4 54
  • 理解
    倚靠祂阅读 191评论 0 0
  • 我失眠了,我觉得如果失眠的时候不拿手机我就胜利了,那样我就可以想很多的前因后果,可我失败了,因为我拿起了手机,我知...
    郭大胆LYX阅读 175评论 4 6
  • 今天才评完我们的模型,老师失望的眼神、语气都像一根刺,扎在我的心里。感觉自己的前途渺茫,没有希望,这种感觉是那样的...
    哈哈還阅读 218评论 0 0