Git常用命令

  • Post author:
  • Post category:其他


这是一篇笔记

//查看某个命令文档
git help <command>
git <command> -h
git <command> --help



1.基本操作



用户配置

git config --global user.name "bettyaner"
git config --global user.email bettyaner@163.com



配置级别

  • –local(默认,高级优先):只影响本地仓库
  • –global(中优先级):只影响所有当前用户的git仓库
  • –system(低优先级):影响到全系统的git仓库



一些命令

//初始化仓库
git init 
//对状态的跟踪
git status

git status介绍:

git中有两个状态:内容状态和文件状态,

内容状态标示内容文件的改变,有三个区域:工作目录,暂存区和提交区

文件状态有两个状态:已跟踪和未跟踪

在这里插入图片描述

	//添加文件内容到暂存区(同时文件被跟踪)
	git add
	
	//添加所有文件
	git add .
	

在这里插入图片描述

并不是所有文件都想被跟踪,可以配置.gitignore配置忽略文件

git rm --cached :仅从暂存区删除
git rm :从暂存区与工作目录同时删除
git rm $(git ls-files --deleted):删除所有被跟踪,但是在工作目录被删除的文件

这是一个类比:

在这里插入图片描述

git -commit -m 'first commit' //从暂存区提交 -m:注释
git commit -a -m 'full commit'从工作区提交

在这里插入图片描述

git log //查看提交历史记录

git log --online
git log --color --graph

git diff //工作区与暂存区的差异
git diff  --cached [<reference>]//暂存区与某次提交的差异,默认为HEAD
git diff  [<reference>]//工作区与某次提交的差异,默认为HEAD

git checkout -- <file> //将文件内容从暂存区复制到工作目录

//撤销暂存区内容
git reset HEAD <file> //将文件内容从上次提交复制到缓存区
git checkout HEAD -- <file> //将内容从上次提交复制到工作目录


下面这张图完美的展示了以上提到的命令

在这里插入图片描述



2.分支操作



1.git branch

分支的增删查改都靠它

git branch <branchName> //创建一个分支
git branch -d <branchName> //删除一个分支
git branch -v //显示所有分支信息



2.git checkout

git checkout <branchName> //通过移动HEAD检出版本,可用于切换分支
git checkout -b <branchName> //创件一个分支并切换
git checkout <reference> //将其移动到一个引用
git checkout - //恢复到上一个分支

git checkout 也可以跟一个commitid,这时候HEAD指向这个commitid跟所有分支分离,这个状态为detached



3.git reset

//git reset   将当前分支回退到历史某个版本
git reset --mixed <commit> //(默认)
git reset --soft<commit> 
git reset --hard <commit> 

git reflog

在这里插入图片描述



4.git stash

git stash 用来保存目前的工作目录和暂存区状态,并返回到干净的工作空间

有时候我们要切换分支会有以下提示,是因为当前分支还有内容未提交,现在切换内容会丢失。这时候要用到git stash 命令

在这里插入图片描述

git stash save "push to stash area" // 通过save 后面传入信息标识 放到stash区
git stash list //查看收藏的记录
git stash apply stash@{0} //将保存的内容重新恢复到工作目录
git stash drop stash@{0} //将对应的stash记录删除

git stash pop //= git stash apply + git stash drop

在这里插入图片描述



git merge

合并分支

git cat-file -p HEAD //查看某个对象的具体信息

git merge 基本会出现冲突

merge fast-forward

merge fast-forward //默认  不会显示 feature,只保留单条分支记录。git直接把HEAD指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建commit
git merge --no-ff //指的是强行关闭fast-forward方式。可以保存之前的分支历史。能够更好的查看 merge历史,以及branch 状态

git rebase //修剪提交历史基线,俗称“变基”
git rebase --onto master 5755487

在这里插入图片描述

git tag //对某个提交设置一个别名



3.远程操作

git init ~/git-server --bare  //初始化一个本地的远程服务器

git push //将本地历史推送到远程

git remote :远程仓库相关配置操作

git remote add  origin ~/git-server //添加一个远程仓库的别名
git remote -v //查看远程仓库信息

git fetch :获取远程仓库的提交记录

git fetch 
git pull // git pull = git fetch + git merge
git clone //克隆一个远程仓库作为本地仓库



版权声明:本文为weixin_67585820原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。