前言其实我很早就想写这篇文章了,但是我觉得这个东西是大家最常用的,大家应该都不陌生,但是还是有很多在实际工作中,人们并不知道如何使用Git命令行,甚至Git客户端工具。太可怕了。其实这个东西如果只是用于开发和工作中使用的话,完全没有必要专门为它买书。你只需要了解一点原理,学会使用常用命令即可。本文假设你有一定的Git基础。这篇文章的目的是介绍Git命令行,并解释每条命令的作用。本文默认大家对Git的理解。我有一定的了解,就是我应该大概了解上面的理论,就不多说了。我亲自操作工作区。添加后会提交到暂存区stage,commit后会提交到本地仓库,push是提交到远程仓库Git是目前世界上最先进的分布式版本控制系统,为了解决多人协作,多次修改,最顺畅的提交让大家熟悉Git仓库划分情况:Git是目前世界上最先进的分布式版本控制系统(没有之一)。先给大家介绍一下Git的仓库划分:Git是目前世界上最先进的分布式版本控制系统(没有之一)。配置和创建仓库,分支命令,tag命令,修改和提交,撤销,查看历史,配置和创建仓库查看配置:gitconfig--list配置/修改用户名:gitconfig--globaluser.name"name"配置/修改邮箱:gitconfig--globaluser.email"email"查看仓库:gitclonegit://github.com/jquery/jquery.git查看远程仓库:gitremote-v添加远程仓库:gitremoteadd[name][url]删除远程仓库:gitremoterm[name]pull远程仓库:gitpull[remoteName][localBranchName]push远程仓库:gitpush[remoteName][localBranchName]branch命令查看所有远程分支:gitbranch-r查看本地所有分支:gitbranch查看所有分支:gitbranch-a创建本地分支:gitbranch[name]创建后需要手动切换分支创建远程分支:gitpushorigin[name]创建新分支并立即切换到它新分支:gitcheckout-b[name]switchbranch:gitcheckout[name]deletelocalbranch:gitbranch-d/-D[name]-D用于强制删除-d只能删除已经参与合并的分支,对于没有被合并的分支是不能删除的.删除远程分支:gitpushorigin--delete[name]覆盖本地代码:gitfetch--all&&gitreset--hardorigin&&gitpull合并分支:gitmerge[name]将name分支合并到当前分支查看当前状态:gitstatustag命令查看版本:gittag创建版本:gittag[name]删除版本:gittag-d[name]查看远程版本:gittag-r创建远程版本:gitpushorigin[name]删除远程版本:gitpushorigin--delete[name]将远程仓库的tag合并到本地:gitpullorigin--tags将本地tag上传到远程仓库:gitpushorigin--tags创建带注释的tag:gittag-a[name]-m'message'修改并提交代码查看状态:gitstatus查看修改:gitdiff将修改后的文件添加到暂存区:gitadd[file]将所有修改后的文件添加到暂存区:gitadd。文件重命名:gitmv[old][new]删除文件:gitrm[file]将暂存区所有文件提交到本地仓库:gitcommit-m'message'修改上次提交:gitcommit--amendPush本地仓库到远程仓库:gitpushorigin[name]merge分支代码:gitmerge[name]将name分支合并到当前分支undocode撤消添加一个文件:gitresetHEADxxx.java撤消添加的所有文件:gitresetHEAD撤销文件的commit:gitreset--hardHEADgitreset[--mixed--soft--hard]commitID有三个参数,熟悉这三个参数的意思--mixed表示取消gitadd和gitcommit的操作,并保留编辑器的代码;--soft表示撤销gitcommit,不撤销gitadd操作,同时保留编辑器代码;--hard参数很暴力,直接取消commit和add操作,撤销所有改动的代码。当你决定使用--hard参数时,就意味着你应该已经决定放弃所有修改过的代码。push操作的撤消:gitresetcommitID/gitrevertcommitIDreset就是返回到某个commit。本次commit和之前的Commit会被保留,但是经过这一次之后所有的修改都会返回到暂存区。Revert是生成一个新的Commit提交来取消某次提交。本次提交之前的Commit会被保留。可以理解为删除对应版本的代码,重新提交,查看当前信息。分支的版本和历史:gitlog显示commit历史,以及每次Commit的变化文件:gitlog--stat根据关键字搜索提供Commithistory:gitlog-S[keyword]显示一个文件的版本历史,包括文件重命名:gitlog--follow[file]显示过去五次提交:gitlog-5--pretty--oneline显示所有提交Users谁通过了,按照提交次数排序:gitshortlog-sn显示指定文件被修改的人和时间:gitblame[file]显示暂存区和工作区的区别:gitdiff显示最后几个当前分支的commits:gitreflog创建新的Git代码库gitinit查看当前文件状态gitstatus远程同步下载远程仓库所有更改gitfetch[remote]显示所有远程仓库gitremote-v显示远程仓库信息:gitremoteshow[remote]添加一个新的远程仓库并命名:gitremoteadd[shortname][url]上传本地指定分支到远程仓库:gitpush[remote][branch]强行push当前branch到远程仓库:gitpush[remote]--force将所有分支推送到远程仓库:gitpush[remote]--all
