Git学习笔记 - 常用命令速查

查找命令前先理解一个东西,git分为工作区、暂存区、本地仓库、远程仓库

init初始化本地仓库、add文件到暂存区、commit将文件提交到本地仓库、push将本地分支发布到远程、clone将远程仓库克隆到本地….

以下命令控制流程中的增删改、查询、推送…

此日志仅为方便自己查询使用,对新手学习无帮助!如果你是初学请移步 廖雪峰 - Git教程

文件\版本


pwd	#显示当前目录
git init	#初始化仓库
git add <file>	#告诉git,把file文件添加到暂存区
git add . 	#告诉git,把所有有变化的文件添加到暂存区
git commit -m "description"	#告诉git把文件提交到仓库,-m 后为本次提交说明
git status	#仓库当前状态
git diff <file>	#查看文件修改了哪些内容
git diff HEAD -- <file>	#查看工作区和版本库里面最新版本的区别
git log	#查看提交日志(从最近到最远)
git log --pretty=oneline	#仅显示一行
git reset --hard HEAD^ 	#回退到上一版本
	HEAD	#当前版本
	HEAD^ 	#上一modified版本
	HEAD^^ 	#上上个版本
	HEAD~100	#当前往上100个版本
git reset --hard <commit id>	#回退到commit id指定版本
git reset HEAD <file>	#丢弃file在暂存区的所有修改,重新回到工作区
git checkout -- <file>	#丢弃file在工作区的所有修改(用版本库中的文件替换工作区中的文件,可用于文件误删除后的恢复)
git reflog	#记录每一次命令
git rm <file>	#删除一个文件

远程仓库


git-keygen -t rsa -C "youemail@example.com"	#创建SSH Key
git remote add origin git@github.com:xxx/xxx.git 	#关联一个远程仓库
git push -u origin master	#将本地master分支推送到远程仓库(第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。)
git push origin master	#将本地master分支推送到远程仓库
git clone git@github.com:guan6/ceshi2.git <dir>	#克隆远程仓库到本地(dir可选,不填会以项目名建立文件夹)

分支管理


git branch dev		#创建dev分支
git checkout dev	#切换到dev分支
git checkout -b dev	#创建dev分支,并切换到dev分支
git checkout -b dev origin/dev	#创建远程origin的dev分支到本地
git branch			#查看分支(当前分支带*号)
git merge dev		#合并指定分支到当前分支(快速合并)
#如多个分支都有修改,提交时可能出现冲突,手动修改冲突后,重新合并(Fast forward)。
git merge --no-ff -m "merge with no-ff" dev #禁用快速合并(Fast forward)

#快递合并与--no-ff区别:合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

git branch -d dev	#删除指定分支
git branch -D dev	#强制删除未合并分支
git log --graph		#查看分支合并图
git log --graph --pretty=oneline	#查看分支合并图(仅显示一行)
git log --graph --pretty=oneline --abbrev-commit	#查看分支合并图(仅显示commit id)

储藏


git stash	#将当前工作现场“储藏”起来
git stash list	#查看所有的stash
git stash apply	#恢复最近一次的stash
git stash apply stash@{n} 	#回复最近第n次的stash
git stash pop	#恢复最近一次的stash,同时将其从栈中移除
git stash -p | git apply -R #取消最近应用的stash
git stash drop	#删除最近一个stash
git stash drop <id>	#删除指定的stash
git stash clear	#清空所有stash

多人协作


git remote	#查看远程仓库信息
git remote -v	#查看远程仓库信息(显示更详细信息)

git push origin <name>	#将当前分支推送到远程库
git pull	#把最新的提交从远程origin/dev抓下来
git branch --set-upstream dev origin/dev	#指定本地dev分支与远程origin/dev分支的链接
  1. 首先,可以试图用git push origin branch-name推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch —set-upstream branch-name origin/branch-name

标签管理

标签相当于版本库的一个快照,某一时刻打的标签(默认标签是打在最新提交的commit上的),在将来可以通过此标签获得当时的历史版本。


git tag <tag name>	#打一个标签,如tag name为v1.0
git tag v1.0 <commit id>	#如果当时忘记打标签,以后可以通过commit id给历史版本打标签
git tag -a <tag name> -m "<Description>"	#打一个带有说明的标签-a指定标签名,-m指定文字说明
git tag -s <tag name> -m "<Description>"	#用PGP签名标签,带说明

git tag	#查看所有标签
git show <tag name>	#查看标签信息

git push origin <tag name>	#推送本地标签到远程
git push origin --tags	#推送全部未推送的本地标签到远程
git tag -d <tag name>	#删除一个本地标签
git push origin :refs/tags/<tag name>	#删除一个远程标签

Git配置


git config --global color.ui true	#让git显示颜色
git config --global alias.st status	#配置别名,将status简化为st。
git config --global alias.last 'log -1'	#配置一个新命令,用来代替一段命令

配置文件
git config —global… 带有global时,配置将对当前用户起作用。不加global,只对当前仓库起作用
每个仓库的Git配置文件都放在.git/config文件中
删除别名时可以在此配置文件中修改[alias]中的内容
忽略某些文件
在工作目录下创建.gitignore文件,将要忽略的文件名填入此文件。文件格式如下:


# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini

把git基础应用看完,耗时2天时间,一边看,一边测试!能否熟练应用,要看以后使用git是否频繁了。整理日志以备不时之需!

Git
git

评论