一,git 常用命令

git init                         # 初始化本地git仓库(创建新仓库)
git config --global user.name "xxx"           # 配置用户名
git config --global user.email "xxx@xxx.com"        # 配置邮件
git config --global color.ui true      # git status等命令自动着色
git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
git config --global --unset http.proxy # remove  proxy configuration on git
git clone git+ssh://git@192.168.53.168/VT.git     # clone远程仓库
git status                # 查看当前版本状态(是否修改)
git add xyz               # 添加xyz文件至index
git add .                 # 增加当前子目录下所有更改过的文件至index
git commit -m 'xxx'          # 提交
git commit --amend -m 'xxx'   # 合并上一次提交(用于反复修改)
git commit -am 'xxx'         # 将add和commit合为一步
git rm xxx                # 删除index中的文件
git rm -r *               # 递归删除
git log                   # 显示提交日志
git log -1                # 显示1行日志 -n为n行
git log -5
git log --stat            # 显示提交日志及相关变动文件
git log -p -m
git show dfb02e6e4f2f7b573337763e5c0013802e392818         # 显示某个提交的详细内容
git show dfb02            # 可只用commitid的前几位
git show HEAD             # 显示HEAD提交日志
git show HEAD^           # 显示HEAD的父(上一个版本)的提交日志 ^^为上两个版本 ^5为上5个版本
git tag                   # 显示已存在的tag
git tag -a v2.0 -m 'xxx'    # 增加v2.0的tag
git show v2.0              # 显示v2.0的日志及详细内容
git log v2.0               # 显示v2.0的日志
git diff                   # 显示所有未添加至index的变更
git diff --cached         # 显示所有已添加index但还未commit的变更
git diff HEAD^            # 比较与上一个版本的差异
git diff HEAD -- ./lib     # 比较与HEAD版本lib目录的差异
git diff origin/master..master   # 比较远程分支master上有本地分支master上没有的
git diff origin/master..master --stat   # 只显示差异的文件,不显示具体内容
git remote add origin git+ssh://git@192.168.53.168/VT.git # 增加远程定义(用于push/pull/fetch)
git branch            # 显示本地分支
git branch --contains 50089    # 显示包含提交50089的分支
git branch -a                  # 显示所有分支
git branch -r                 # 显示所有原创分支
git branch --merged           # 显示所有已合并到当前分支的分支
git branch --no-merged        # 显示所有未合并到当前分支的分支
git branch -m master master_copy   # 本地分支改名
git checkout -b master_copy        # 从当前分支创建新分支master_copy并检出
git checkout -b master master_copy    # 上面的完整版
git checkout features/performance     # 检出已存在的features/performance分支
git checkout --track hotfixes/BJVEP933   # 检出远程分支hotfixes/BJVEP933并创建本地跟踪分支
git checkout v2.0                        # 检出版本v2.0
git checkout -b devel origin/develop     # 从远程分支develop创建新本地分支devel并检出
git checkout -- README                # 检出head版本的README文件(可用于修改错误回退)
git merge origin/master               # 合并远程master分支至当前分支
git cherry-pick ff44785404a8e         # 合并提交ff44785404a8e的修改
git push origin master                # 将当前分支push到远程master分支
git push origin :hotfixes/BJVEP933    # 删除远程仓库的hotfixes/BJVEP933分支
git push --tags                 # 把所有tag推送到远程仓库
git fetch                       # 获取所有远程分支(不更新本地分支,另需merge)
git fetch --prune               # 获取所有原创分支并清除服务器上已删掉的分支
git pull origin master          # 获取远程分支master并merge到当前分支
git mv README README2           # 重命名文件README为README2
git reset --hard HEAD           # 将当前版本重置为HEAD(通常用于merge失败回退)
git rebase
git branch -d hotfixes/BJVEP933      # 删除分支hotfixes/BJVEP933(本分支修改已合并到其他分支)
git branch -D hotfixes/BJVEP933      # 强制删除分支hotfixes/BJVEP933
git ls-files                        # 列出git index包含的文件
git show-branch                     # 图示当前分支历史
git show-branch --all               # 图示所有分支历史
git whatchanged                    # 显示提交历史对应的文件修改
git revert dfb02e6e4f2f7b573337763e5c0013802e392818       # 撤销提交dfb02e6e4f2f7b573337763e5c0013802e392818
git ls-tree HEAD             # 内部命令:显示某个git对象
git rev-parse v2.0           # 内部命令:显示某个ref对于的SHA1 HASH
git reflog                   # 显示所有提交,包括孤立节点
git show HEAD@{5}
git show master@{yesterday}    # 显示master分支昨天的状态
git log --pretty=format:'%h %s' --graph    # 图示提交日志
git show HEAD~3
git show -s --pretty=raw 2be7fcb476
git stash                      # 暂存当前修改,将所有至为HEAD状态
git stash list                 # 查看所有暂存
git stash show -p stash@{0}    # 参考第一次暂存
git stash apply stash@{0}      # 应用第一次暂存
git grep "delete from"         # 文件中搜索文本“delete from”
git grep -e '#define' --and -e SORT_DIRENT
git gc
git fsck

二,git的安装方式
在 Linux 上安装
如果你想在 Linux 上用二进制安装程序来安装基本的 Git 工具,可以使用发行版包含的基础软件包管理工具来
安装。 以 Fedora 为例,如果你在使用它(或与之紧密相关的基于 RPM 的发行版,如 RHEL 或 CentOS),你
可以使用 dnf:

$ sudo dnf install git-all

如果你在基于 Debian 的发行版上,如 Ubuntu,请使用 apt:


$ sudo apt install git-all
在 Windows 上安装 Git 也有几种安装方法。 官方版本可以在 Git 官方网站下载。 打开 https://git-scm.com/

download/win,下载会自动开始。
Git 有三种状态,你的文件可能
处于其中之一:

已提交(committed)、已修改(modified) 和 已暂存(staged)。
已修改表示修改了文件,但还没保存到数据库中。
已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交表示数据已经安全地保存在本地数据库中。

这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录。
三、基本的 Git 工作流程如下:

  1. 在工作区中修改文件。
  2. 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
  3. 提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。
    用户信息
    安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使
    用这些信息,它们会写入到你的每一次提交中,不可更改:
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

要想获得 git config 命令的手册,执行

$ git help config
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
 git add -h

git上传本地
在 Linux 上:

$ cd /home/user/my_project

在 macOS 上:

$ cd /Users/user/my_project

在 Windows 上:

$ cd /c/user/my_project

之后执行:

$ git init

克隆仓库的命令是 git clone 。 比如,要克隆 Git 的链接库 libgit2,可以用下面的命令:

$ git clone https://github.com/libgit2/libgit2

克隆仓库的命令是 git clone 。 比如,要克隆 Git 的链接库 libgit2,可以用下面的命令:

$ git clone https://github.com/libgit2/libgit2

git status 命令查看哪些文件处于什么状态
要跟踪 README 文件,运行:

$ git add README

git status -s 命令或 git status --short 命令,你将得到一种
格式更为紧凑的输出。
移除文件$ rm PROJECTS.md
记录此次移除文件的操作:

$ git rm PROJECTS.md

当你忘记添加 .gitignore 文件,不小
心把一个很大的日志文件或一堆 .a 这样的编译生成文件添加到暂存区时,这一做法尤其有用。 为达到这一目
的,使用 --cached 选项:

$ git rm --cached README

git rm 命令后面可以列出文件或者目录的名字,也可以使用 glob 模式。比如:

$ git rm log/\*.log

* 之前的反斜杠 \, 因为 Git 有它自己的文件模式扩展匹配方式,所以我们不用 shell 来帮忙展开。
此命令删除 log/ 目录下扩展名为 .log 的所有文件。 类似的比如:

$ git rm \*~

该命令会删除所有名字以 ~ 结尾的文件。
在 Git 中对文件改名,可以这么做:

$ git mv file_from file_to
$ git mv README.md README
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:(use "git reset HEAD <file>..." to unstage)renamed: README.md -> README
#其实,运行 git mv 就相当于运行了下面三条命令:
$ mv README.md README
$ git rm README.md
$ git add README

运行下面的命令获取该项目:

$ git clone https://github.com/schacon/simplegit-progit

git log 会按时间先后顺序列出所有的提交,最近的更新排在最上面。这个命令会列出每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明。

-p 或 --patch ,它会显示每次提交所引入的差异(按 补丁 的格式输出),用 -2 选项来只显示最近的两次提交。
--stat 选项在每次提交的下面列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了。
--stat 选项在每次提交的下面列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了。
short,full 和 fuller 选项,它们展示信息的格式基本一致,但是详尽程度不一:

$ git log --pretty=oneline
-p 按补丁格式显示每个提交引入的差异。
--stat 显示每次提交的文件修改统计信息。
--shortstat 只显示 --stat 中最后的行数修改添加移除统计。
--name-only 仅在提交信息后显示已修改的文件清单。
--name-status 显示新增、修改、删除的文件清单。
--abbrev-commit 仅显示 SHA-1 校验和所有 40 个字符中的前几个字符。
--relative-date 使用较短的相对时间而不是完整格式显示日期(比如“2 weeks ago”)。
--graph 在日志旁以 ASCII 图形显示分支与合并历史。
--pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline、short、full、fuller 和
format(用来定义自己的格式)。
--oneline --pretty=oneline --abbrev-commit 合用的简写。

--since 和 --until 这种按照时间作限制的选项很有用。 例如,下面的命令会列出最近两周的所
有提交:

$ git log --since=2.weeks

找出添加或删除了对某一个特定函数的
引用的提交,可以调用:

$ git log -S function_name

git log 输出的选项
选项 说明

-<n> 仅显示最近的 n 条提交。
--since, --after 仅显示指定时间之后的提交。
--until, --before 仅显示指定时间之前的提交。
--author 仅显示作者匹配指定字符串的提交。
--committer 仅显示提交者匹配指定字符串的提交。
--grep 仅显示提交说明中包含指定字符串的提交。
-S 仅显示添加或删除内容匹配指定字符串的提交。

如果要在 Git 源码库中查看 Junio Hamano 在 2008 年 10 月其间, 除了合并提交之外的
哪一个提交修改了测试文件,可以使用下面的命令:
49

$ git log --pretty="%h - %s" --author='Junio C Hamano' --since="2008-10
-01" \

提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选
项的提交命令来重新提交:

$ git commit --amend

你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:

$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend

取消暂存 CONTRIBUTING.md 文件:

$ git reset HEAD CONTRIBUTING.md

git checkout -- <file> 是一个危险的命令。 你对那个文件在本地的任何修改都会消失——Git 会用最近提交的版本覆盖掉它。 除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令。
会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL。

$ git remote -v

将你所做的备份到服务器:

$ git push origin master

行 git remote rename 来修改一个远程仓库的简写名。 例如,想要将 pb 重命名为 paul,可以用
git remote rename 这样做:

$ git remote rename pb paul
$ git remote

以上为git的基本命令。

Git 常用命令大全1相关推荐

  1. Git常用命令大全(从入门到使用,学不会评论区骂我)

    Git常用命令大全 1:Git全局设置 当安装Git后首先要做的事情是设置用户名称和email地址.这是非常重要的,因为每次Git提交都会使用该用户信息.在Git 命令行中执行下面命令: 设置用户信息 ...

  2. 【转载】Git 常用命令大全

    一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态  git commit 提交  git branch -a 查看所有的分支 git branch ...

  3. Git 常用命令大全-转载

    一. Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态  git commit 提交  git branch -a 查看所有的分支 git branch ...

  4. GIT常用命令大全——赶紧收藏

    史上最全的GIT常用命令都在这里啦! 全是干货!建议收藏起来,反复观看! 一.git安装后-指定名称和邮箱 $ git config --global user.name "Your Nam ...

  5. git常用命令大全(附详细解释)

    1.创建仓库 使用当前目录作为Git仓库,我们只需使它初始化. git init 该命令执行完后会在当前目录生成一个 .git 目录. 使用我们指定目录作为Git仓库. git init newrep ...

  6. Git 常用命令集锦

    文档已储存在 GitHub,这里不再更新校正,请原谅. 远程仓库相关命令 克隆远程仓库:git clone git://github.com/jquery/jquery.git 查看远程仓库:git ...

  7. git tag和分支的区别_GIT常用命令大全

    Git 是一个很强大的分布式版本控制系统.它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势. 克隆远程文件: git clone https://gitee.com/abcd/ ...

  8. Git 常用命令总结,掌握这些,轻松驾驭版本管理

    Git 常用命令总结,掌握这些,轻松驾驭版本管理 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn ...

  9. Git常用命令(汇总)

    Git常用命令及方法大全 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) R ...

最新文章

  1. Springboot 多文件上传
  2. OpenCV3的机器学习算法-K-means-使用Python
  3. windows XP系统Stop c0000218 unknown hard error 蓝屏故障的解决方法
  4. 《JAVA与模式》之合成模式
  5. maven 无效的源发行版11
  6. java 密码生成器_Java课程设计-随机密码生成器
  7. ruby 的while
  8. angular代码规范_同样写代码,为何差距越来越大?
  9. 测试管理和自动化测试工具篇
  10. #6278. 数列分块入门 2
  11. 内部存储空间不足_手机存储空间不足,教你快速解决
  12. mysql 存储过程 调度_mysql 存储过程和事件调度
  13. 史上最全面“完美商业计划书”攻略和技巧(附PPT模板)
  14. mysql基础01 创建表 修改表
  15. stl文件的解析和在线3d打印
  16. 我看过的机器学习方面的好文章
  17. 网络前沿技术期末考题盘点
  18. Spring AOP(面向切面) 注解使用方法
  19. python如何绘制饼图_Python使用Plotly绘图工具,绘制饼图
  20. GCD,快速GCD,扩展GCD

热门文章

  1. 在ts项目中接入live2d-widget.js , 在网页中展示二次元老婆
  2. android 代码关闭叠加层,在Android中绘制叠加层(系统范围)
  3. [PPTX解析] 图片效果算法篇:柔化边缘
  4. 天香计算机游戏,天涯明月之天香技能介绍
  5. smc数显压力表设定方法_smc真空压力表说明书ZSE30ISE30ACN.pdf
  6. 廖志高谈“去大公司好还是小公司好”
  7. 苹果iPad 4详解与正版行货水货区分
  8. 8088的引导过程_(转载)操作系统引导过程
  9. GB2312 中文简体字库表
  10. 微信支付宝争夺ETC市场