查看Git的版本:git --version
通过以下代码可查看当前Git配置信息:git config --list/git config -l
通过指定的配置名来获取单独的配置信息:git config user.name
配置全局用户名和邮箱:
git config --global user.name "hcq"
git config --global user.email "hcq@gmail.com"
我们的某一个项目想要用特定的邮箱,这个时候只需切换到你的项目,以上代码把--global参数去除,再重新执行一遍就ok了
删除某个配置:git config --global --unset user.name AndroidName
git config --global alias.st status
通过上面可以使用st来取代status指令
笔者还找到一个关于Git log比较好的Alias,可以显示出比较清晰的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项目目录,显示所有所有文件:ll -a
通过git init指令就可以在文件目录下创建成一个Git代码仓库,在创建成功后就会在该目录下生成一个.git隐藏文件夹
git clone用于clone一个远程仓库到本地
git status 查看文件的提交状态
git log用来查看文件修改状态,git shortlog 可以根据提交者的名字进行分组,显示每个开发者的所有提交记录,更多指令可以通过git log –help来获取Log指令的详细参数
git show <commitId> 可以显示某次提交的修改内容
同样 git show <commitId> filename 可以显示某次提交的某个内容的修改信息
可以通过git blame指令追溯一个指定文件的历史修改记录
可以通过git diff指令查看发生变化文件的具体变化,例如输入git diff README
git diff指令除了比较指定文件的差异,还可以比较提交节点间的差异,例如使用以下代码比较与上一个commit节点间的差异git diff HEAD
git add操作实际上是将修改记录保存到暂存区,git commit操作就是将暂存区的内容全部提交,但如果内容不add到暂存区,那么commit也就不会提交修改内容
git commit -am "str"等同于git commit -a -m "str",某种程度上相当于git add和git commit -m的组合使用,只用一步就可以提交
git commit --amend 适用于如果上次提交的有问题,需要做一些修改,同时又不希望产生两条提交记录,可以使用该命令。这样在git log上就只会有一条提交记录,用这次提交的message信息覆盖上次的,如果没有commit message的话,提交记录上沿用上一次的提交message。可以参考:https://www.jianshu.com/p/a8a2ac58f37d
checkout还有一个撤销的作用,假设我们在一个分支开发一个小功能,刚写完一半,这时候需求变了,而且是大变化,之前的代码完全用不了了,好在你刚写,甚至都没有git add进暂存区,这个时候很简单的一个操作就直接把原文件还原:git checkout a.md
git checkout . 本地所有修改的。没有的提交的,都返回到原来的状态。这个指令可以撤销所有修改的文件
执行add指令将代码提交奥暂存区后,再修改该文件,此时如果继续执行checkout指令,则会将该文件恢复到执行add操作后的初始状态,即恢复add后的所有修改
版本回退:用git log可以查看提交历史,以便确定要回退到哪个版本,通过git reset --hard commit_id 回到指定的commit_id的提交版本。如果我们回退之后,发现回退错了,需要恢复到上一个版本,这个时候我们可以通过git reflog指令,查看操作历史,从而获取之前的commit id进行恢复
用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100
回退到上个版本:git reset --hadr HEAD^
回退到上个版本:git reset --hadr HEAD^^
回退到往上100个版本:git reset --hadr HEAD~100
注意:
git reset --hard 表示回退到上一次的提交,工作区间与上一次提交保持一致,不会保留本次提交的代码
git reset --soft 表示回退到上一次的提交,但是工作区间会保留这次提交的代码修改
远程分支版本回退:如果你的提交已经推送到自己的远程分支了,那么就需要回滚远程分支了。
首先要回退本地分支:
git reflog
git reset --hard Obfafd
紧接着强制推送到远程分支:
git push -f
git rm a.txt 指令可以删除指定的文件,省去了重新执行git add,git commit的操作。
相当于通过如下方式删除文件:
rm add2.txt
git add add2.txt
git commit -m "rm test"
Git常用操作命令收集:
- 远程仓库相关命令
检出仓库: git clone git://github.com/jquery/jquery.git
查看远程仓库: git remote -v
添加远程仓库: git remote add [name] [url]
本地的仓库和远程的仓库进行关联,将本地添加到远程服务器
git remote add origin git@github.com:YotrolZ/helloTest.git origin后面是远程仓库的git地址
指令中的origin指的就是远程仓库的名字,你也可以叫别的名字,但是默认远程仓库都叫origin,以便区分。
删除远程仓库: git remote rm [name]
查看我们当前项目有哪些远程仓库:git remote -v
修改远程仓库: git remote set-url --push[name][newUrl]
拉取远程仓库: git pull [remoteName] [localBranchName],一般直接使用git pull
推送远程仓库: git push [remoteName] [localBranchName] git push origin [remoteName]
git push -u origin master 把修改推送到远程仓库
由于git push指令加上了-u参数,所以Git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来
在Push到远程分支之后,再次Push的时候就不用-u参数了,可以直接使用git push或者git push origin master指定仓库和分支名将新的修改推送到远程分支
2)分支(branch)操作相关命令
查看本地分支:git branch 在当前分支上会多一个*,用来表示当前所处的分支
查看远程分支:git branch -r
查看所有分支,即远程和本地分支:git branch -a
创建本地分支: git branch [branchName] ----注意新分支创建后不会自动切换为当前分支
切换分支:git checkout [branchName]
创建新分支并立即切换到新分支:git checkout -b [branchName]
拉取远程分支到本地并切换到该分支:git checkout -b dev(本地分支名称) origin/dev(远程分支名称)
删除本地分支(项目处在哪个分支下,无法使用命令删除该分支): git branch -d [branchName] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
合并分支: git merge [name] ----将名称为name的分支与当前分支合并
创建远程分支(本地分支push到远程,并且远程分支名和本地分支名相同):git push origin [branchName]
提交本地分支作为远程的分支:git push origin <localbranchName>:<originbranchName>
给本地分支设置对应的远程分支:git branch --set-upstream-to=origin/<originbranchName>
git push origin test:test // 提交本地test分支作为远程的test分支
删除远程分支: git push origin :heads/[branch_name] 在Git v1.7.0 之后,可以使用这种语法删除远程分支:git push origin --delete branch_name
git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的
合并分支(在哪个分支下执行该命令,就是合并到哪个分支):git merge <branchName>或者git rebase <branchName>
查看本地分支最新的提交记录,以及远程分支的提交:git branch -vv
查看所有分支最新的提交记录:git branch -avv
3)版本(tag)操作相关命令
查看版本:git tag
创建版本:git tag [name]
在指定commit id上创建Tag:git tag [name] b687b06
创建带有注释的Tag,通过-a参数可以指定Tag名,通过-m参数指定注释文字:git tag -a v1 -m "version1" b678b06
删除版本:git tag -d [name]
查看远程版本:git tag -r
创建远程版本(本地版本push到远程):git push origin [name]
通过指定–tags参数来推送所有的本地Tag:git push origin --tags
删除远程版本:首先要通过git tag -d [name]删除本地tag,然后再执行git push origin :refs/tags/[name]删除远程tag