关于git:Git版本管理工具常用命令整理和说明

35次阅读

共计 3298 个字符,预计需要花费 9 分钟才能阅读完成。

工作区:就是你在电脑里能看到的目录。

暂存区:英文叫 stage, 或 index。个别寄存在 “.git 目录下 ” 下的 index 文件(.git/index)中,所以咱们把暂存区有时也叫作索引(index)。

版本库:工作区有一个暗藏目录.git,这个不算工作区,而是 Git 的版本库。

第一步:用户名和邮箱。

别离批改用户名和邮箱,其中 –global 带和不带的区别在于操作文件是.git/config 还是~/.gitconfig,如果你应用的是 –system 则对应的就是 /etc/gitconfig 文件。

对于是否在最初带 username 或 email,区别在于你是设置还是查看。

git config [--global] user.name [username]

git config [--global] user.email [email]

第二步:主机。

列出所有近程主机,应用 - v 选项(即:git remote -v),能够参看近程主机的网址, 应用 show hostname 能够查看主机 hostname 的详细信息。

git remote [show hostname]

增加连贯的近程仓库,其中 hostname 是给仓库起的名称,uri 是仓库地址。

git remote add hostname uri

删除连贯的近程仓库,其中 hostname 是给仓库起的名称。

git remote rm hostname

批改近程主机 oldhostname 名称为 newhostname。

git remote rename oldhostname newhostname

第三步:初始化。

应用该命令会在目录中创立新的 Git 仓库,本地化的。

git init

把 uri 指定的仓库代码克隆到本地来,如果加了可选参数 dir,示意克隆到该文件夹下。

git clone uri [dir]

第四步:提交。

从近程服务器拉取代码更新,hostname 是对应的仓库名称,branchname 是分支名称。

git pull hostname branchname

【不举荐间接用这个】增加文件到缓冲区,你能够指定增加的文件 filename,也能够应用 - A 把文件夹下全副文件增加到缓冲区。

git fetch hostname branchname

git diff localbranchname hostname/branchname[-- filepath][>>filePath]

git merge hostname/branchname

【举荐应用这个比拟平安】以上命令的含意:首先从近程的 hostname 的 branchname 分支下载最新的版本到 hostname/branchname 分支上,而后比拟本地的 branchname 分支和 hostname/branchname 分支的差异,最初进行合并。

最初可选参数 — filepath 是指定比照的文件,不指定就是全副文件。

最初的可选参数 >>filePath 示意把差别文件输入到文件,不便查看。

git add filename|-A

提交代码到本地仓库,- m 前面的 remark 示意对这次提交的形容。

git commit [-m remark]

提交代码到近程服务器,hostname 是对应的仓库名称,branchname 是分支名称。

git push hostname branchname

第五步:日志。

查看日志(- p 显示每次提交的内容差别),前面的那些可选参数是对日志过滤当前再显示,-num 举个例子:- 2 示意查看最近 2 次的提交历史记录,前面的 fileName 和 branchName 不便示意查看特定文件和分支的日志,commit 代表查看提交日志。

git log [-p] [-num|fileName|branchName|commit]

显示整个本地仓储的 commit,包含所有 branch 的 commit,甚至包含曾经撤销的 commit,只有 HEAD 产生了变动,就会在 reflog 外面看失去,git log 只包含以后分支的 commit。

git reflog

第六步:回退。

将特定的 filename 文件回滚到 hashname 提交。

git checkout hashname filename

用暂存区的所有文件间接笼罩本地文件,不给用户任何确认的机会,能够了解放弃本地批改。

git checkout .

如果发现最新的一次提交完了加某个文件, 它会把最新的提交打回暂存区,并尝试从新提交。

git commit —amend

把 add 增加的文件 filename 从缓冲区删除。

git reset -- filename

复原到 hashname 指定的提交时,不保留批改。

git reset --hard hashname

复原到 hashname 指定的提交时,保留批改。

git reset --soft hashname

回滚提交,其中 HEAD 是最新的一次提交别名(git revert 是用一次新的 commit 来回滚之前的 commit,git reset 是间接删除指定的 commit。)。

git revert HEAD|hashname

第七步:比拟。

查看二次提交比照批改了什么,能够看见他们之间的全副更改。

git diff commitFromHashname..commitToHashname

执行该命令能够晓得仓库目前的状态,是否是最新代码,有没有批改等。

git status

查看以后全副文件的批改

git diff HEAD

仅查看变动(changes【not staged】to be commited)

git diff

仅查看变动(changes【staged】to be commited)

git diff --staged

第八步:合并。

合并分支 branchname 到以后沉闷分支。

git merge|rebase branchname

第九步:暂存。

暂存以后正在进行的工作,比方想 pull 最新代码,又不想加新 commit,或者另外一种状况,为了 fix 一个紧急的 bug,先 stash,使返回到本人上一个 commit, 改完 bug 之后再 stash pop,持续原来的工作。

git stash

取出最初暂存的,并从暂存栈移除。

git stash pop

将以后的暂存栈信息打印进去。

git stash list

将暂存栈清空。

git stash clear

将你指定版本号为 stash@{num} 的工作取出来,不会移除。

git stash apply stash@{num}

第十步:标签。

查看曾经打的标签,如果要进行筛选,能够应用 - l 增加抉择(比方 git tag -l v1. 会抉择结尾是 v1. 标签,而 git tag -l .2 会抉择结尾是.2 的,以此类推别的,* 就是一个通配符)。

git tag [-l 筛选表达式]

打一个名称为 tagname 并增加该标签的正文为 tagremark 的标签,这种是一般的标签(如果你有 GPG 私钥,把 - a 换成 - s 就是后面的 tag 了)。

git tag -a tagname [-m tagremark]

提交标签 tagname 到近程 hostname。

git push hostname tagname

提交全副标签到近程 hostname。

git push hostname --tags

删除标签 tagname(本地的)。

git tag -d tagname

删除标签 tagname(近程的)。

git push hostname -d tag tagname

第十一步:分支。

查看分支状态,如果应用 -r(即:git branch -r)示意查看近程分支状态,- a 选项查看所有分支。

git branch

创立一个名称叫 branchname 的分支,此分支初始化领有的是你创立此分支时沉闷分支。

git branch branchname

切换以后沉闷分支为 branchname。

git checkout branchname

删除本地指定分支 branchname。

git branch -d branchname

删除近程指定分支 branchname。

git push hostname --delete branchname

批改本地分支 oldbranchname 的名称为 newbranchname。

git branch -m oldbranchname newbranchname

实现在本地删除近程曾经不存在的分支。

git fetch --prune

正文完
 0