全局配置:git config --global user.name "Your Name"
当前仓库配置:git config --local user.name "Your Name"
git config --global user.email "[email protected]"
git config --global credential.helper store
ssh-keygen -t rsa -C "[email protected]"
或 ssh-keygen -t rsa -C "计算机名"
初始化一个git仓库(版本库)
git init
git config --global --list
git config --system --list
git config --local --list
或 git config -l --local
git status
git diff
git log
git log --pretty=oneline
git reflog
查看工作区和版本库里面最新版本的区别
git diff HEAD -- file
git reflog
(添加新文件时和修改文件时都用此命令)把文件修改添加到暂存区
git add
实际上就是把暂存区的所有内容提交到当前分支
git commit -m
git reset --hard HEAD^
git reset --hard commit_id
把暂存区的修改撤销掉(unstage),重新放回工作区
git reset HEAD
git reset
命令既可以回退版本,也可以把暂存区的修改回退到工作区。HEAD表示最新的版本
新命令:
git rm --cached
git restore --staged
单文件
git checkout -- file
git restore
这里有三种情况
把误删的文件恢复到最新版本
git checkout -- file
git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
git rm
git rm -r --cached 文件/目录名
git update-index --assume-unchanged file
忽略单个文件
git update-index --no-assume-unchanged file
取消忽略的文件
git rm -r --cached .
取消全部文件
git update-ref -d HEAD
git remote add origin git@server-name:path/repo-name.git
关联远程库之前必须先在远程库上建立一个空的库
git remote rm origin
把本地git仓库推送到远程git仓库(第一次推送本地到远程时要加-u)
git push -u origin master
git pull
默认拉取与本地分支对应的远程分支
git pull origin master
git pull origin dev
git fetch
获取远程仓库中所有分支到本地
git remote -v
在本地创建和远程分支对应的分支,名称一致
git checkout -b
建立本地分支和远程分支的关联
git branch --set-upstream-to origin/
例如:git branch --set-upstream-to origin/master
git clone git@server-name:path/repo-name.git
把本地master分支的最新修改推送至远程(不用加-u)
git push origin master
或 git push
git branch
git branch -v
git branch -vv
git log --graph
git log --graph --pretty=oneline --abbrev=commit
git branch --merged
git branch --no-merged
git branch -d
git branch -D
git push origin :
git push origin --delete
例如:删除远程 master
分支
git push origin :master
git push origin --delete master
git branch
git checkout
创建分支并切换到创建的分支
git checkout -b
合并某个分支到当前的分支
git merge
使用普通模式合并分支,可以从分支历史上看出分支信息
git merge --no-ff -m "合并描述" 分支名
例如:git merge --no-ff -m "merge wih no-ff" dev
把本地未push的分叉提交历史整理成直线
git rebase
把现场工作“储藏”起来,等以后恢复现场后继续工作
git stash
git stash list
恢复后stash并不删除
git stash apply
git stash apply stash@{0}
git stash pop
git stash drop
git stash drop stash@{0}
默认是在最新提交的commit上
git tag
例如:git tag v1.0
指定某个commit打标签
git tag v1.0 commit_id
例如:git tag v1.0 1094adb
添加标签并增加备注
git tag -a
查看所有标签
git tag
查看标签信息
git show
例如:git show v1.0
git tag -a v0.1 -m "version 0.1 released" commit_id
(-a)指定标签名,(-m)指定说明文字
标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
删除本地标签
git tag -d
删除远程标签(先删除本地)
git push origin :refs/tags/标签名
推送标签到远程
git push origin
一次性推送所有未推送到远程的本地标签
git push origin --tags
git config --global color.ui true
在线配置文件
查看某个文件的忽略规则
git check-ignore -v 文件名
例如:git check-ignore -v app.class
当文件被忽略时,添加不了,可以强制添加到git
git add -f app.class
status起别名为st
git config --global alias.st status
checkout 别名co
git config --global alias.co checkout
commit 别名ci
git config --global alias.ci commit
branch 别名br
git config --global alias.br branch
reset HEAD别名为unstage
git config --global alias.unstage 'reset HEAD'
log -1别名为last (git last --显示最近的一次的提交)
git config --global alias.last 'log -1'
配置Git的时候,加上--global
是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
每个仓库的Git配置文件都放在.git/config
文件中。
当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig
中。
参考博客
git config --global core.quotepath false
windows出现 warning:LF will be replaced by CRLF
的问题,参考博客
rm -rf .git // 删除.git
git config --global core.autocrlf false // 禁用自动转换
git init
git add .
core.autocrlf 的默认值是true
在团队中需要大家都统一配置,保持配置一致,不然会出现个人与团队不一致情况