Git学习笔记之七:常用命令

基本命令

  • git init :初始化仓库

  • git add <filename> :添加未跟踪文件到暂存区 或 添加修改的文件到暂存区

  • git rm <filename> :将文件从git跟踪列表中删除

  • git commit -m 'commit log' :提交一个版本到git

  • git log :查看所有的提交历史记录

  • git status :查看当前git的状态

  • git checkout -- <file> :撤销工作目录文件的修改

  • git reset HEAD <file> :取消暂存

版本管理

  • git reset --hard HEAD^ :版本回退上一个版本

  • git reset --hard HEAD^^ :版本回退上上个版本

  • git reset --hard HEAD~100 :版本回退前一百个版本

  • git reflog :查看操作记录,可以找到所有历史commit

  • git diff HEAD -- <file> :命令可以查看工作区和版本库里面最新版本的区别

远程管理

  • git clone [email protected]:michaelliao/gitskills.git :将远程库下载下来

  • git remote add origin git@server-name:path/repo-name.git :添加远程库地址

  • git push -u origin master :提交的远程库

  • 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:建立本地分支和远程分支的关联vgit pull:从远程抓取分支,如果有冲突,要先处理冲突

分支

  • git branch:查看分支

  • git branch <name>:创建分支

  • git checkout <name>:切换分支

  • git checkout -b <name>:创建并切换分支

  • git merge <name>:合并某分支到当前分支

  • git branch -d <name>:删除分支

  • git log --graph:命令可以看到分支合并图

在实际开发中,我们应该按照几个基本原则进行分支管理: 首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活; 那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本; 你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

标签 Tag

  • git tag <name>:用于新建一个标签

  • git tag -a -m "blablabla..."可以指定标签信息

  • git tag -a v0.1 -m "version 0.1 released" 3628164

  • git tag:可以查看所有标签

  • git push origin <tagname>:可以推送一个本地标签

  • git push origin --tags:可以推送全部未推送过的本地标签

  • git push origin :refs/tags/<tagname>:可以删除一个远程标签

  • git tag -d :可以删除一个本地标签

4、一些命令的过程理解

将 Current working directory 记为 工作目录(1) 将 Index file 记为 暂存区(2) 将 Git repository 记为 代码仓库(3)

他们之间的提交层次关系是 (1) -> (2) -> (3)

git add完成的是(1) -> (2) git commit完成的是(2) -> (3) git commit -a两者的直接结合

从时间上看,可以认为(1)是最新的代码,(2)比较旧,(3)更旧按时间排序就是 (1) <- (2) <- (3)

it diff得到的是从(2)到(1)的变化 git diff –cached得到的是从(3)到(2)的变化 git diff HEAD得到的是从(3)到(1)的变化

你可能感兴趣的:(Git笔记)