Git经常使用命令学习笔记

在学习了廖雪峰老师的git教程后把经常使用的命令总结了出来

  • 注:在使用这些命令前请安装好Git软件,地址:https://git-scm.com/downloads,同时去注册一个git类的数据仓库帐号,国外的如github、gitlab,国内的如码云等。

一、在建好的目录下来初始化一个git项目

git init

二、添加文件

2.一、添加全部文件

git add .

2.二、添加指定文件

git add 文件名
eg: git add readme.md

三、提交到仓库

git commit -m "说明"
eg: git commit -m "Update"

四、查看仓库状态

4.一、若是你修改了某个文件,咱们能够经过如下命令来查看状态

git status

4.二、若是想知道某个文件具体修改了哪些内容,用如下命令

git diff 文件名
eg: git diff readme.mdgit

  • 注:在确认修改无误后须要再次对修改的文件作git add 和 git commit命令来提交到仓库。

五、显示从最近到最远的提交日志

git log

六、版本回退

在Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,固然往上100个版本写100个^比较容易数不过来,因此写成HEAD~100。github

git reset --hard HEAD^

七、不想回退版本

找到回退以前的版本的commit版本值(sha1值),来进行反悔操做。bash

git reset --hard commit值
eg: git reset --hard f8dad 注: 这个值只须要取前五位便可。

八、查看回退记录

前面的反悔操做是创建在你还没关闭git bash窗口看获得回退前那个最新版本的commit id值,若是咱们关闭了窗口后想反悔怎么办,使用如下命令来查看app

git relog

九、查看工做区和版本库里面最新版本的区别

git diff HEAD -- 文件名
eg: git diff HEAD -- readme.txt

注:每次修改,若是不用git add到暂存区,那就不会加入到commit中。

十、让文件回到最近一次git commit或git add时的状态。

git checkout -- 文件名
eg: git checkout -- readme.txt //把readme.txt文件在工做区的修改所有撤销

十一、删除版本库的文件

git rm 文件名
eg: git rm test.txt

以后再使用git commit -m "description",文件就从版本库里面删除了

十二、把误删的文件恢复到最新版本

git checkout HEAD -- test.txt //这个恢复的前提是没有执行commit命令才行。

  • 注意:git checkout -- test.txt 针对的是rm test.txt
    若是是git rm test.txt, 参看以前的版本回退, git reset -- hard 文件名

1三、将本地仓库推送到远端仓库

13.一、创建远端地址

git remote add origin 你远端的github地址
eg: git remote add origin git@github.com:michaelliao/learngit.git

13.二、推送到远端仓库

git push -u origin master //推送到主分支,之后能够直接:git push origin master

1四、把建立好的远程仓库上克隆到本地

git clone 远程地址
eg: git clone git@github.com:michaelliao/gitskills.git

git里面重要概念--分支(具体概念参考教程:廖雪峰教程-分支

1五、建立分支

好比咱们要建立dev分支:gitlab

git checkout -b dev

注:git checkout命令加上-b参数表示建立并切换,至关于如下两条命令:学习

git branch dev
git checkout dev

1六、切换分支和查看当前分支

16.一、切换

git checkout master

16.二、查看当前分支

git branch //git branch命令会列出全部分支,当前分支前面会标一个*号。

  • 注:你切换到分支上事后,就能够专一本身分支的开发,使用git add和git commit来进行操做就能够了。提交事后你切换到master分支是没法查看到刚才你在分支上提交的内容的。

1七、合并分支

git merge dev //合并指定分支到当前分支(好比这个在master下合并dev)

1八、删除分支

git branch -d dev //删除dev分支

1九、分支合并冲突

通常来讲在合并分支时与master存在冲突的状况下只能手动去把文件修改一致才行。合并过程冲突的话,可使用cat 文件名来查看冲突的内容,冲突部分会用<<<<<<< HEAD这样的字样标注。

具体操做教程:分支合并冲突日志

20、分支管理策略

前面的分支操做属于Fast Forward模式,这种模式下,删除分支后,会丢掉分支信息,接下来不使用这种模式。
使用这个模式的其它操做几乎都同样,只是在合并的时候加一个参数和一个commit信息。以下:code

git merge --no-ff -m 'no-ff' dev

查看分支历史图教程

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

2一、实际开发使用分支管理的原则

首先,master分支应该是很是稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,好比1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每一个人都在dev分支上干活,每一个人都有本身的分支,时不时地往dev分支上合并就能够了。ip

2二、bug分支

有时候咱们在开发的过程当中遇到bug,须要及时去修复,可是目前分支上的开发任务又无法提交,Git还提供了一个stash功能,能够把当前工做现场“储藏”起来,等修复bug之后恢复现场后继续工做。

22.一、保存当前分支工做现场

git stash //执行了这个命令后用git status就不会看到未提交的信息。

  • 注:使用这个命令的前提是你的文件已经git的暂存区里面了。在保存好上面的工做现场后,你就须要去建立本身专门的bug修复分支,来进行修复,以后再合并和删除bug分支便可,作完这些事后你须要恢复咱们开始保存好的工做现场。

22.二、恢复工做现场

git stash list //查看工做现场的位置
    
    git stash apply //恢复后,stash内容并不删除,你须要用git stash drop来删除

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

    git stash apply stash@{0} //恢复指定的stash,这个stash@{0}参数能够从git stash list查看

2三、features分支

当咱们在开发新功能时须要新建一个分支,可是在开发完事后不要这个功能了,须要删除这个未合并的分支。

git branch -D feature //删除未合并的分支须要使用大D。

2四、能够抓取和推送的origin的地址

git remote -v //若是没有推送权限,就看不到push的地址。

2五、推送到分支

25.一、推送到主分支

git push origin master

25.二、推送到其它分支

git push origin dev

2六、多人协做开发

这个参考教程,比较详细:多人协做开发
总结为如下几步:

查看远程库信息,使用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;

    从远程抓取分支,使用git pull,若是有冲突,要先处理冲突。

补充

一、将本地分支推送到远程仓库

git push --set-upstream origin 分支名
eg: git push --set-upstream origin dev
相关文章
相关标签/搜索