Git常用命令小结

Git

版本库道理

Git的版本库里存了许多东西,个中最主要的就是称为stage(或许叫index)的暂存区,另有Git为我们自动建立的第一个分支master,以及指向master的一个指针叫HEAD。
事情区有一个隐蔽目次.git,这个不算事情区,而是Git的版本库

《Git常用命令小结》

建立版本库:

#建立文件
$ mkdir myapp

#进入文件
$ cd myapp

#初始化代码客栈
$ git init

#把须要提交的一切修正放到暂存区(Stage)
$ git add file

#提交一切文件
#$ git add . 

#提交一切.js格式文件
#$ git add *.js

#强迫增加
#$ git add -f file

#提交代码
$ git commit -m "commit info"

检察

#检察汗青纪录,git log敕令显现从近来到最远的提交日记
$ git log

#检察分支兼并图
$ git log --graph

#Git供应了一个敕令git reflog用来纪录你的每一次敕令:
$ git reflog

#git status敕令用于显现事情目次和暂存区的状况。运用此敕令能看到那些修正被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。git status不显现已commit到项目汗青中去的信息。
$ git status

#当暂存区中没有文件时,git diff比较的是,事情区中的文件与上次提交到版本库中的文件。
#当暂存区中有文件时,git diff则比较的是,当前事情区中的文件与暂存区中的文
$ git diff

#比较事情区中的文件与版本库中文件的差异。HEAD指向的是版本库中的当前版本,而file指的是当前事情区中的文件。
$ git diff HEAD -- file

版本回退:

#Git必需晓得当前版本是哪一个版本,在Git中,用HEAD示意当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当回退版本较早时能够写成HEAD~100。

#版本回退
$ git reset --hard HEAD^

#作废回退,commitId为你想要回到的将来版本号
$ git reset --hard commitId

打消修正

敕令git checkout ——file 把文件在事情区的修正悉数打消,这里有两种状况:

* 一种是file修正后还没有被放到暂存区,如今,打消修正就回到和版本库如出一辙的状况;
* 一种是file已增加到暂存区后,又作了修正,如今,打消修正就回到增加到暂存区后的状况。
#文件在事情区的修正悉数打消
$ git checkout --file

删除文件

敕令git rm用于从版本库删除一个文件。
假如一个文件已被提交到版本库,那末你永久不必忧郁误删,然则要警惕,你只能恢复文件到最新版本,你会丧失近来一次提交后你修正的内容。

#从版本库删除一个文件
$ git rm file

提醒:先手动删除文件,然后运用git rm <file>和git add<file>结果是一样的。

增加长途客栈

#关联一个长途库
$ git remote add origin <address>
#第一次将当地库的一切内容推送到长途库上
$ git push -u origin master [-f]

#今后,每次当地提交后,就能够运用敕令推送最新修正
$ git push origin master

从长途库克隆

#
git clone [url]

比方,要克隆 Ruby 言语的 Git 代码客栈 Grit,能够用下面的敕令:

#这会在当前目次下建立一个名为grit的目次,个中包含一个.git的目次,用于保留下载下来的一切版本纪录,然后从中掏出最新版本的文件拷贝。假如进入这个新建的grit目次,你会看到项目中的一切文件已在里边了,准备好后续的开辟和运用。

$ git clone git://github.com/schacon/grit.git

假如愿望在克隆的时刻,本身定义要新建的项目目次称号,能够在上面的敕令末端指定新的名字:

#唯一的差异就是,如今新建的目次成了mygrit,其他的都和上边的一样。
$ git clone git://github.com/schacon/grit.git mygrit

分支治理

《Git常用命令小结》

建立+切换分支:

$ git checkout -b <name>

建立分支:

$ git branch <name>

切换分支

$ git checkout <name>

检察分支:

#git branch敕令会列出一切分支,当前分支前面会标一个*号。
$ git branch

切换分支

#切换回master分支
$ git checkout <name>

兼并某分支到当前分支

$ git merge <name>

删除分支

$ git branch -d <name>

Git分支非常壮大,在团队开辟中应当充足运用。
兼并分支时,加上—no-ff参数就能够用一般形式兼并,兼并后的汗青有分支,能看出来曾做过兼并,而fast forward兼并就看不出来曾做过兼并。

贮藏

贮藏能够猎取你事情目次的中间状况——也就是你修正过的被追踪的文件和暂存的变动——并将它保留到一个未完结变动的客栈中,随时能够从新运用。

如今你想切换分支,然则你还不想提交你正在进行中的事情;所以你贮藏这些变动。为了往客栈推送一个新的贮藏,只需运转git stash。把一切未提交的修正(包含暂存的和非暂存的)都保留起来,用于后续恢复当前事情目次。

git stash

须要申明一点,stash是当地的,不会经由过程git push敕令上传到git server上。

检察现有的一切贮藏,此敕令明显暗示了git stash能够屡次保留事情进度,并用在恢复时刻挑选。

$ git stash list

从新运用已实行的贮藏(不删除贮藏)

#假如你想运用更早的贮藏,你能够经由过程名字指定它,像如许:git stash apply stash@{2}。假如你不指明,Git 默许运用近来的贮藏并尝试运用它
$ git stash apply [--index] [<stash>]

从新运用已实行的贮藏(删除贮藏)

#假如不运用任何参数,会恢复最新保留的事情进度,并将恢复的事情进度从存储的事情进度列表中消灭。
#假如供应<stash>参数(来自git stash list显现的列表),则从该<stash>中恢复。恢复终了也将从进度列表中删除<stash>。
#选项--index除了恢复事情区的文件外,还尝试恢复暂存区。
$ git stash pop [--index] [<stash>]

删除一个存储的进度。(默许删除最新的进度)

$ git stash drop [<stash>]

清空当前一切的stash

$ git stash clear

基于贮藏进度建立分支。

$ git stash branch <branchname> <stash>

多人合作

检察长途库的信息:

#或许用git remote -v 可显现更细致的信息
$ git remote

推送分支,该分支上的一切当地提交推送到长途库

$ git push origin <branch-name>

从当地推送分支,假如推送失利,先抓取长途的新提交:

$ git pull

引荐浏览:
2019年前端面试题-01
2019年前端面试题-02
2019年前端面试题-03
2019年前端笔试题

我是Cloudy,年青的前端攻城狮一枚,爱专研,爱手艺,爱分享。

个人笔记,整顿不容易,谢谢浏览、点赞和珍藏。

文章有任何题目迎接人人指出,也迎接人人一同交换前端种种题目!

    原文作者:云鱼Cloudy
    原文地址: https://segmentfault.com/a/1190000019429417
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞