GIT常用命令

举报
gaozhiliang 发表于 2020/07/23 19:54:51 2020/07/23
【摘要】 专业术语Workspace:工作区Index/Stage:暂存区Repository:仓库区(本地仓库)Remote:远程仓库新建仓库在当前目录新建一个Git代码库shell$ git init下载一个项目和它的整个代码历史shell$ git clone [url]添加/删除文件添加指定文件到暂存区shell$ git add [file1] [file2] ...添加指定目录到暂存区,包...

专业术语

Workspace:工作区

Index/Stage:暂存区

Repository:仓库区(本地仓库)

Remote:远程仓库


新建仓库

在当前目录新建一个Git代码库

shell

$ git init


下载一个项目和它的整个代码历史

shell

$ git clone [url]


添加/删除文件

添加指定文件到暂存区

shell

$ git add [file1] [file2] ...


添加指定目录到暂存区,包括子目录

shell

$ git add [dir]


添加当前目录的所有文件到暂存区

shell

$ git add .


从暂存区移除指定文件

shell

$ git reset HEAD [file1] [file2] ...


从缓存区移除指定目录,包括子目录

$ git reset HEAD [dir]


丢弃工作区修改的指定文件

shell

$ git checkout -- [file] ...


丢弃工作区修改的所有文件

shell

$ git checkout -- .


告诉你哪些文件会被删除. 记住他不会真正的删除文件, 只是一个提醒

shell

$ git clean -n


删除当前目录下所有 untrack 的文件

shell

git clean -f


删除指定路径下的 untrack 的文件

shell

git clean -f [path]


删除当前目录下 untrack 的文件和文件夹

shell

git clean -df


代码提交

提交暂存区到仓库区

shell

$ git commit -m [message]


提交暂存区的指定文件到仓库区

shell

$ git commit [file1] [file2] ... -m [message]



状态及日志

显示有变更的文件

$ git status


显示当前分支的版本历史

$ git log


查看最近一次提交所有更改过的文件

$ git log -n 1 --stat


查看最近一次提交所有更改的细节

$ git log -n 1 -p


显示暂存区和工作区的差异

$ git diff


显示暂存区和工作区单个文件的差异

$ git diff [file]


显示暂存区中文件的修改


$ git diff -staged

查看某个commit点的文件修改记录


$ git show [commit]



分支

列出本地所有分支

$ git branch


列出远程所有分支

$ git branch -r


切换到指定分支,并更新工作区

$ git checkout [branch-name]


新建一个分支,并停留在当前分支

$ git branch [branch-name]


新建一个分支,并切换到该分支

$ git checkout -b [branch-name]


新建一个分支,与指定的远程分支建立追踪关系

$ git branch --track [branch-name] [remote-branch]


新建一个分支,与指定的commit点建立追踪关系

$ git branch -b [branch-name] [SHA1]


删除本地分支

$ git branch -d [branch-name]


强制本地删除分支

$ git branch -D [branch-name]


删除远程分支

$ git push origin --delete [branch-name]


新增远程仓库

git remote add [branch-name] [branch-url]



标签

列出所有tag

$ git tag


删除本地tag

$ git tag -d [tag]


删除远程tag

$ git push origin :refs/tags/[tagName]


查看tag信息

$ git show [tag]


提交指定tag

$ git push [remote] [tag]


新建一个分支,指向某个tag

$ git checkout -b [branch] [tag]



远程同步

下载远程仓库的所有变动

console

> git fetch [remote]


显示所有远程仓库

console

> git remote -v


下载远程仓库的所有变动

console

> git fetch [remote]


取回远程仓库的变化,并与本地分支合并

console

> git pull [remote] [branch]


取回远程仓库的变化,并与本地分支rebase

console

> git pull --rebase [remote] [branch]


上传本地指定分支到远程仓库

console

> git push [remote] [branch]


强行推送当前分支到远程仓库,即使有冲突

console

> git push [remote] --force


拉取更新远程分支列表

console

> git remote update [remote] --prune


撤销

重置暂存区与工作区,与上一次commit保持一致

$ git reset --hard


重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变

$ git reset [commit]


重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致

$ git reset --hard [commit]


保存当前的工作进度。会分别对暂存区和工作区的状态进行保存

$ git stash


显示进度列表。此命令显然暗示了git stash 可以多次保存工作进度,并用在恢复时候进行选择

$ git stash list


显示保存的工作进度内容

$ git stash show [--index] [<stash>]


恢复指定工作进度,但是不将工作进度从工作进度列表中删除

$ git stash apply [--index] [<stash>]


恢复最新保存的工作进度,并将恢复的工作进度从存储的工作进度列表中清除

$ git stash pop [--index] [<stash>]


删除保存的指定工作进度

$ git stash drop [--index] [<stash>]


删除所有存储的进度

$ git stash clear


代理设置

设置当前分支HTTP代理

$ git config http.proxy http://127.0.0.1:3128


设置全局HTTP代理

$ git config --global http.proxy http://127.0.0.1:3128


设置当前分支HTTPS代理

$ git config https.proxy https://127.0.0.1:3128


设置HTTPS代理

$ git config --global https.proxy https://127.0.0.1:3128


忽略SSL证书错误

$ git config --global https.proxy https://127.0.0.1:3128


其它

设置当前分支代码提交模板

$ git config [template-file-path]


设置全局代码提交模板

$ git config --config [template-file-path]


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。