git 命令列表

废话:Git,是分布式版本控制系统,在多人开发的模式下,相信很多人都在用高大上的git,git是目前版本控制系统中非常非常好的。本文不会详细介绍git的历史、发展和功能,都是干货,如果想详细了解git可以看廖雪峰的文章,写的非常好,我也是在这里学习的。

git命令列表:

git status

查看当前仓库的状态,查看修改和未提交的文件。

git diff

查看工作区与暂存区的区别。

git diff fileName

查看对fileName文件做了哪些修改,不写的话就会列出所有修改的文件。

git diff HEAD --fileName

查看工作区与上一条提交的区别。注:从来没有被 add 过 的文件,untracked files 并不会显示出来。

git diff --staged 或 git diff --cached

查看暂存区与最新提交的区别。

git add fileName

将fileName工作区的内容添加到暂存区,‘git add .’是将所有修改的文件的工作区内容添加。(工作区和暂存区大家自行了解吧!)

git commit -m"备注"

将暂存区的内容提交到当前库的当前分支上。

git commit --amend

发现刚刚的提交内容有错误时,并且不想再提交一次,可以在修复后使用git commit --amend。该命令会将工作区与上次提交的内容合并起来,并创建一个新的commit,将当前的commit替换掉。

git log

查看提交历史记录。

git log -p

查看每个提交中的详细修改内容。

git log --stat

查看每个提交中修改的文件。

git show commitId

查看指定提交的修改内容。不加commitId,即为最新的提交。

git show commitId 文件路径

查看指定提交的指定文件的修改内容。

git reset --hard HEAD^

回退到上一版本。‘git reset --hard HEAD^^’回退到上两个版本,以此类推。

git reset --hard commitId

回退到指定的版本,commitId可以通过git log或git reflog获取到。

git revert HEAD^

增加一个新的提交,内容与指定提交相反,达到互相抵消的效果,从而实现撤销提交。

git reflog

git命令的历史列表,记录了每次执行的git命令,包括commitId和提交信息。

git checkout --fileName

销毁fileName工作去的内容,让文件回退到最近一次git commit或git add的状态。

git checkout -b dev

在仓库中创建并切换到dev分支,dev是自己起的分支名。

git branch

列出库中的所有分支,*标注的是当前分支。

git checkout master

切换到master分支。

git merage dev

在master分支上执行该命令,就是将dev分支的内容合并到master上。

git branch -d dev

删除dev分支。

git merage --no-ff -m"备注" dev

在执行git merage命令合并分支时,在没有冲突的情况下,默认采用Fast forward模式进行合并。该命令是禁止Fast forward模式,并会创建一个commit。

git stash

将当前分支的当前工作现场储藏,储藏后git status查看不到修改状态。

git stash list

储藏列表。

git stash apply

恢复储藏的内容,恢复后stash内容不删除,列表中还存在。

git stash pop

恢复储藏内容,恢复后stash内容删除,列表中不存在。

git stash apply stash@{i}

恢复指定的储藏内容,i是列表中的序号。

git branch -D dev

强行删除dev分支,分支在未被合并的情况下执行‘git branch -d dev’删除会失败,需要强行删除,删除后dev的修改会丢掉。

git remote

查看远程库的信息。

git remote -v

查看远程库更加详细的信息,抓取(fetch)和推送(push)的地址。

git push origin dev

将本地仓库分支的所有提交推送到远程仓库对应的分支上面。

git push origin dev -f

强制将本次提交推送到远程仓库。

git tag

查看当前分支下所有的tag。

git tag v1.0

打一个新的tag:v1.o,默认是打在最新提交的commit上。

git tag v1.0 commitId

将tag打在指定的commit上。

git show v1.0

查看tag的信息,如时间、作者、commitId、说明等。

git tag - v1.0 -m“说明信息” commitId

创建带有说明的tag。

git tag -s v1.0 -m"说明信息" commitId

通过私钥签名打tag。

git tag -d v1.0

删除指定的tag。(本地)

git push origin v1.0

将指定的tag推送到远程。

git push origin --tags

将本地所有为推送至远程的tag,一次性推送至远程。

git tag -d v1.0

删除本地的tag。

git push origin :refs/tags/v1.0

删除已经推送至远程的tag,先要将本地的删除。

git merge --abort

取消本次merge操作。

git config --global alias.st status

配置git status命令的别名,--global表示全局有效,不写的话就只在当前库有效。alias.st,st是自定义的,代替status,配置后git st = git status.

git config --global alias.co checkout

git checkout的别名。

.gitignore

存放git提交忽略的文件,在gitignore中配置过的文件,通过git status无修改状态,git commit也不会被提交,不过可能会没用,执行git rm --cached fileName从staged移除之后再试试。

.git/config

别名的配置都存在了这个文件中,可以在里面直接修改或删除某个git命令的别名。

git clean -f

删除当前目录下未被track的文件,但是不会删除gitignore中指定的文件。

git clean -df

删除当前目录下未被track的文件和文件夹,但是不会删除gitignore中指定的文件和文件夹。

git clean -xf

删除当前目录下所有未被track的文件和,不管是否是gitignore中指定的文件和文件夹。

git show commitid 或 git diff commitid^!

查看某次commit的具体修改。

恩!就总结这些git命令了,可能上面哪里理解的不对,欢迎大神们批评教育!

你可能感兴趣的:(git 命令列表)