Git 总结

  |   0 评论   |   248 浏览

修改 demo/.git/config

git config -e

修改 /home/andpay/.gitconfig 全局配置文件

git config -e --global

修改 /etc/gitconfig 系统级配置文件

git config -e --system

备份项目

git clone demo demo-step-1

git log 优化

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

使用:
git lg

查看详细变更
git lg -p

查看指定 ID 详细变更
git lg -p 09327f3fe4d736bb4e7ba122598e2d7a9d577c37

git tag

显示最大值
git config --global alias.mtag "describe --tags $(git rev-list --tags --max-count=1)"

使用:
git mtag


打 tag
git tag 1.0.0

打完 tag 之后并推送远端
git push origin 1.0.0

修改 commit 说明

git commit --amend

查看log具体diff

git log -p 09327f3fe4d736bb4e7ba122598e2d7a9d577c37
git show 09327f3fe4d736bb4e7ba122598e2d7a9d577c37

用暂存区内容刷新工作区

git checkout .

工作区、暂存区、HEAD比较

工作区、暂存区比较
git diff
暂存区、HEAD比较
git diff --cached
或者:
git diff --cached HEAD
工作区、HEAD比较
git diff HEAD
或者:
git diff master

删除远端分支

git push origin :develop
或者
git push origin --delete feature/riskSupport

删除 untracked files

git clean -f

连 untracked 的目录也一起删掉

git clean -fd

连 gitignore 的untrack 文件/目录也一起删掉

(慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)

git clean -xfd

在用上述 git clean 前,强烈建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删

git clean -nxfd
git clean -nf
git clean -nfd

批量删除本地存在远端不存在的分支

git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d

撤销

git add 撤销
单个撤销:git reset HEAD a.txt
全部撤销:git reset (实际命令为 git reset --mixed) 或者 git reset HEAD
git commit 撤销
撤销到工作区(没有 add 之前状态):git reset HEAD^
说明:HEAD^ 是这次提交的上次ID

撤销到暂存区(没有commit之前状态,作用于commit说明不满意或者commit不满意需要再次修改):git reset --soft HEAD^

撤销到上次版本,不保留任何文件:git reset --hard
还原方法:git reflog (找到需要还原的ID)
	 git reset 需要还原的ID
		  
撤销到某个ID版本,不保留任何文件:git reset --hard 需要撤销到的ID
还原方法:git reflog (找到需要还原的ID)
	 git reset 需要还原的ID	 
还要继续执行命令(因为在新分支上,repos感知不到这个阶段的改变,用 add 或 stash, 让其知晓,才能做想要的回滚)
	 git add . 
	 git reset --hard
	 或者:
	 git stash
	 git stash drop

评论

发表评论

validate