初始化相关信息
#配置使用git仓库的人员姓名
#配置使用git仓库的人员email
git config --global user.name "Name"
git config --global user.email "Email"
#修改缓存时间 (当使用命令行提交时,验证密码没有设置为空,导致频繁输入密码)
git config --global credential.helper 'cache --timeout=3600'
#关闭在add文件时候出现LF和CRLF符号转义问题的警告
git config --global core.autocrlf false
常用操作
#初始化版本库
git init 库名称.git
#初始化一个裸git版本库,一半用于搭建服务器
git init --bare 库名称.git
# 将指定文件修改提交到本地缓存区
git add
# 将所有修改过的工作文件提交缓存区
git add .
#将缓存区文件提交到本地版本库
git commit -m "提交说明"
#同时进行add 和 commit 操作
#仅用于被成功tracked到的文件,修改后的可以,新加入的不可以
git commit -am "提交说明"
#将本地版本库修改推送到远程版本库
git push
#从远程库拉取最新提交信息,记录到.git/FETCH_HEAD文件中,不进行合并
git fetch
#将拉取到的信息与当前本地版本库进行合并
git merge
#拉取当前的远程库最新信息并进行合并到本地
git pull
# 从版本库中删除文件
git rm
# 从版本库中删除文件,但不删除文件
git rm --cached
git 命令设置别名
#使用 git st 代替 git status命令
$ git config --global alias.st status
#当然还有别的命令可以简写,很多人都用co表示checkout,ci表示commit,br表示branch:
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
回滚操作1 reset
git reset # 从暂存区恢复到工作文件,仅分支指向变化,修改未还原
git reset -- . # 从暂存区恢复到工作文件,仅分支指向变化,修改未还原
git reset --hard/mixed/soft # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
git reset <版本号> #将指定文件重置到指定的版本号状态,但内容仍需通过checkout还原
rest后跟参数说明
--soft,暂存区和工作区不会被切换
--mixed,暂存区会更新至指定的commit,工作区不会收到影响,这是默认的选项
--hard,暂存区和工作区同时更新到指定的commit,计入--hard回退时内容会变动,类似checkout回退操作
回滚操作2 checkout
#checkout除了能够切换分支之外,还可以进行回退
git checkout -- #将指定的file回退到修改前,即当前分支未修改的状态
git checkout HEAD~2 #将当前file回退到两个版本前的内容,内容变化
回滚操作3 revert
#reset操作,提交版本按时间有A,B,C,当前处于C,当reset回到A时,版本BC被删除
#revert操作,提交版本按时间有A,B,C,当前处于C,当revert回到A时,会先回滚到A,然后再Commit一个D,所以最后会是A,B,C,D...BC没有被删除
#revert是版本级别的操作,只能还原版本,不能直接还原文件级别的
git revert <版本号> # 恢复某次提交的状态,恢复动作本身也创建了一次提交对象
git revert HEAD # 恢复最后一次提交的状态
比较差异操作 diff
git diff # 比较当前工作区和暂存区差异
git diff # 比较当前文件和暂存区文件差异
git diff <版本号1> <版本号2> # 比较两次提交之间的差异
git diff .. # 在两个分支之间比较
git diff --staged # 比较暂存区和版本库差异
git diff --cached # 比较暂存区和版本库差异
git diff --stat # 仅仅比较统计信息
状态与日志查看
git status #查看当前工作区和缓存区状态
git status -s #查看当前工作区和缓存区状态
git log
git log # 查看该文件每次提交记录
git log -p # 查看每次详细修改内容的diff
git log -p -2 # 查看最近两次详细修改内容的diff
git log --stat #查看提交统计信息