Git使用总结

用户信息配置

$ git config --list [--local|worktree|global|system]                    #查看git配置信息
$ git config --show-origin user.name                                    #查看某条配置信息的源文件
$ git config --global user.name glorylee                                #设置用户名
$ git config --global user.email dennisglorylee@gmail.com               #设置用户邮箱
$ git config --global alias.hist 'log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short' #像这种比较长的git命令,可以通过别名设置来简化:git hist

远程仓库创建&变更提交

$ git init  								#创建本地仓库
$ echo "# git-summary" >> README.md  					#创建说明
$ git add README.md 							#添加本地文件
$ git commit -m "first commit"   					#添加提交说明
$ git commit -am "add and commit"   					#添加变更并提交
$ git commit --amend   					                #修正上次提交            
$ git remote add origin https://github.com/codeLee321/git-summary.git 	#关联远程仓库
$ git push --set-upstream origin master  				#将本地文件推向远程仓库
$ git push -u origin master 						#效果同上
$ git push -f								#强推
$ git branch --set-upstream-to=origin/dev dev				#指定本地dev分支与远程dev分支链接
$ git remote								#查看远程库的信息
$ git remote -v								#查看更多的远程库的信息
$ git clone https://github.com/codeLee321/git-summary			#从远程仓库clone

分支管理

1.创建/删除/合并分支

$ git checkout -b dev 							#-b参数表示创建并切换分支
$ git branch								#查看当前分支
$ git checkout master							#切到master分支
$ git merge dev								#将dev分支合并到当前分支
$ git branch -d dev 							#删除dev分支
$ git branch -D dev 							#强制删除dev分支

#高版本git提供switch
$ git switch -c dev							#创建并切换分支
$ git switch master							#切到master分支

2.冲突解决

$ git status								#查看当前分支状态以及文件冲突
$ git log --graph --pretty=oneline --abbrev-commit			#查看合并记录
$ git merge --no-ff -m "merge with no-ff" dev				#合并禁用Fast forward

3.保存/恢复分支变更

$ git stash								#保存当前分支的变更
$ git stash list							#查看保存的列表
$ git stash apply							#恢复保存的变更,但是不删除stash中的内容
$ git stash drop							#删除stash中的内容
$ git stash pop								#恢复保存的变更,同时删除stash中的内容

#复制某次提交,注意:如果复制了这次变更再merge就会出现冲突
#因为同时更改了相同的文件
$ git cherry-pick 4c805e2						#可以将提交变更直接复制到另一个分支上面

版本控制

$ git reset --hard HEAD^						#回退到上一次的提交版本
$ git reset --hard 64b640d6c66088238e4fb6b01ae140e639bf0e6c		#回退到某次特定提交
$ git reflog								#记录每一次的命令
$ git diff HEAD -- README.md						#工作区与远程库README.md文件的区别
$ git checkout -- README.md						#撤销当前文件的修改
$ git rm README.md							#删除某个文件

标签管理

$ git tag v1.0								#打一个标签
$ git tag v0.9 f52c633							#给某次提交打上标签
$ git tag								#查看标签
$ git tag -a v0.1 -m "version 0.1 released" 1094adb			#打标签系列操作
$ git show v1.0								#查看某个标签的描述信息
$ git tag -d v0.1							#删除某个标签
$ git push origin :refs/tags/v0.9					#执行此操作使上面的删除操作推到远程库
$ git push origin v1.0							#推送某个标签到远程
$ git push origin --tags						#一次性推送全部尚未推送到远程的本地标签

文件跟踪

$ git log -p ./path         #跟踪某个文件的变更记录