Git 简明教程--日常操作

初始化相关信息
#配置使用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 <file>

# 将所有修改过的工作文件提交缓存区
git add .           

#将缓存区文件提交到本地版本库
git commit -m "提交说明"

#同时进行add 和 commit 操作
#仅用于被成功tracked到的文件,修改后的可以,新加入的不可以
git commit -am "提交说明"

#将本地版本库修改推送到远程版本库
git push

#从远程库拉取最新提交信息,记录到.git/FETCH_HEAD文件中,不进行合并
git fetch

#将拉取到的信息与当前本地版本库进行合并
git merge

#拉取当前的远程库最新信息并进行合并到本地
git pull

# 从版本库中删除文件
git rm <file>
# 从版本库中删除文件,但不删除文件 
git rm <file> --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 <file>              # 从暂存区恢复到工作文件,仅分支指向变化,修改未还原
git reset -- .                  # 从暂存区恢复到工作文件,仅分支指向变化,修改未还原
git reset --hard/mixed/soft   # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改 
git reset <版本号> <file>      #将指定文件重置到指定的版本号状态,但内容仍需通过checkout还原

rest后跟参数说明
--soft,暂存区和工作区不会被切换
--mixed,暂存区会更新至指定的commit,工作区不会收到影响,这是默认的选项
--hard,暂存区和工作区同时更新到指定的commit,计入--hard回退时内容会变动,类似checkout回退操作
回滚操作2 checkout
#checkout除了能够切换分支之外,还可以进行回退
git checkout -- <file>      #将指定的file回退到修改前,即当前分支未修改的状态
git checkout HEAD~2 <file>  #将当前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 <file>     # 比较当前文件和暂存区文件差异  
git diff <版本号1> <版本号2>   # 比较两次提交之间的差异  
git diff <branch1>..<branch2> # 在两个分支之间比较  
git diff --staged   # 比较暂存区和版本库差异  
git diff --cached   # 比较暂存区和版本库差异  
git diff --stat     # 仅仅比较统计信息  
状态与日志查看
git status          #查看当前工作区和缓存区状态
git status -s       #查看当前工作区和缓存区状态

git log  
git log <file>      # 查看该文件每次提交记录  
git log -p <file>   # 查看每次详细修改内容的diff  
git log -p -2       # 查看最近两次详细修改内容的diff  
git log --stat      #查看提交统计信息 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 12,761评论 1 26
  • 本片内容转自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃儿阅读 10,355评论 2 87
  • 庭院黄昏新雨,燕落枝头私语。 困意力阑珊,呓语谁家爱女。 凝语,凝语。无奈芳心谁许。 注:词林正韵•四部(仄) —...
    素月离竹阅读 981评论 0 0
  • 五点多下班,在公交车站等首班车,四车道的沥青公路来来往往都是飞驰而过的车,应该没有人注意到在路灯下等车的我,就像我...
    盒子无常阅读 2,498评论 0 1
  • 他是叶城城主,少年英俊,在云荒大陆,肩负中州人的兴衰荣辱。 他敢作敢为,天下为谋,独自承担苦痛,有家臣誓死相随,堪...
    青衣女阅读 4,836评论 0 3