资讯专栏INFORMATION COLUMN

Git常用命令小结

付伦 / 2995人阅读

摘要:使用此命令能看到那些修改被暂存到了哪些没有哪些文件没有被到。需要说明一点,是本地的,不会通过命令上传到上。查看现有的所有储藏,此命令显然暗示了可以多次保存工作进度,并用在恢复时候选择。

Git 版本库原理

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
工作区有一个隐藏目录.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 和git add效果是一样的。
添加远程仓库
#关联一个远程库
$ git remote add origin 
#第一次将本地库的所有内容推送到远程库上 $ 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 checkout -b 

创建分支:

$ git branch 

切换分支

$ git checkout 

查看分支:

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

切换分支

#切换回master分支
$ git checkout 

合并某分支到当前分支

$ git merge 

删除分支

$ git branch -d 

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] []

重新应用已经实施的储藏(删除储藏)

#如果不使用任何参数,会恢复最新保存的工作进度,并将恢复的工作进度从存储的工作进度列表中清除。
#如果提供参数(来自git stash list显示的列表),则从该中恢复。恢复完毕也将从进度列表中删除。
#选项--index除了恢复工作区的文件外,还尝试恢复暂存区。
$ git stash pop [--index] []

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

$ git stash drop []

清空当前所有的stash

$ git stash clear

基于储藏进度创建分支。

$ git stash branch  
多人协作

查看远程库的信息:

#或者用git remote -v 可显示更详细的信息
$ git remote

推送分支,该分支上的所有本地提交推送到远程库

$ git push origin 

从本地推送分支,如果推送失败,先抓取远程的新提交:

$ git pull

推荐阅读:
2019年前端面试题-01
2019年前端面试题-02
2019年前端面试题-03
2019年前端笔试题

我是Cloudy,年轻的前端攻城狮一枚,爱专研,爱技术,爱分享。 
个人笔记,整理不易,感谢阅读、点赞和收藏。
文章有任何问题欢迎大家指出,也欢迎大家一起交流前端各种问题!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104554.html

相关文章

  • Git常用命令小结

    摘要:使用此命令能看到那些修改被暂存到了哪些没有哪些文件没有被到。需要说明一点,是本地的,不会通过命令上传到上。查看现有的所有储藏,此命令显然暗示了可以多次保存工作进度,并用在恢复时候选择。 Git 版本库原理 Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。...

    Airmusic 评论0 收藏0
  • Git常用命令

    摘要:工作区状态被改变,用这查看修改内容。添加文件到仓库,分两步使用命令,注意,可反复多次使用,添加多个文件。使用命令,完成。版本回退命令显示从最近到最远的提交日志。要重返未来,用查看命令历史,以便确定要回到未来哪个版本。 创建版本库mkdir learngit 创建learngit目录cd learngit 进入文件夹里pwd 查看目录路径git init 初始化仓库git add re....

    宠来也 评论0 收藏0
  • gulp自动化打包(上)

    摘要:自动化打包上文章概述本文分为上下两篇,上篇主要介绍一些常用的插件也是此次打包主要用的插件,而下篇主要以一个项目为例,从本地出合适的版本,压缩合并到最后打成包,发送至指定目录,做一个全面的演示。 gulp自动化打包(上) 文章概述 本文分为上下两篇,上篇主要介绍一些常用的gulp插件(也是此次打包主要用的gulp插件),而下篇主要以一个demo项目为例,从本地checkout出合适的g...

    roland_reed 评论0 收藏0

发表评论

0条评论

付伦

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<