配置

  1. # 查看全局配置列表
  2. git config -l
  3. # 查看局部配置列表
  4. git config --local --list
  5. # 查看已设置的全局用户名/邮箱
  6. git config --global --get user.name
  7. git config --global --get user.email
  8. # 设置全局用户名/邮箱
  9. git config --global user.name "xiejiahe"
  10. git config --global user.email "example@example.com"
  11. # 设置本地当前工作区仓库用户名/邮箱
  12. git config --local user.name "xiejiahe"
  13. git config --local user.email "example@example.com"
  14. # 将默认文本编辑器设置为 emacs
  15. git config --global core.editor emacs
  16. # 将默认差异化分析工具设置为 vimdiff
  17. git config --global merge.tool vimdiff

生成SSH_Key

  1. # 1、粘贴以下命令,替换为您的GitHub电子邮件地址
  2. ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  3. # 2、当提示“输入要在其中保存密钥的文件”时,按Enter。接受默认文件位置。
  4. > Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
  5. # 3、在提示符下,键入一个安全密码。
  6. > Enter passphrase (empty for no passphrase): [Type a passphrase]
  7. > Enter same passphrase again: [Type passphrase again]

最后需要将生成的 SSH Key 添加到 ssh config

  1. # 1、编辑
  2. vim ~/.ssh/config
  3. # 2、粘贴下面到 config 文件中
  4. Host *
  5. AddKeysToAgent yes
  6. UseKeychain yes
  7. IdentityFile ~/.ssh/id_rsa

初始化仓库

git init 创建一个空的Git仓库或重新初始化一个现有的仓库

  1. # 会在当前目录生成.git
  2. git init
  3. # 以安静模式创建,只会打印错误或警告信息
  4. git init -q
  5. # 创建一个裸仓库, 我们一般不会用到这个命令
  6. git init --bare

文件状态

  1. # 完整查看文件状态
  2. git status
  3. # 以短格式给出输出
  4. git status -s
  5. # 忽略子模块
  6. git status --ignore-submodules

日志

  1. # 查看完整历史提交记录
  2. git log
  3. # 查看前N次提交记录 commit message
  4. git log -2
  5. # 查看前N次提交记录,包括diff
  6. git log -p -2
  7. # 搜索关键词
  8. git log -S Java
  9. # 只显示合并日志
  10. git log --merges
  11. # 以图形查看日志记录, --oneline 可选
  12. git log --graph --oneline
  13. # 列出提交者贡献数量, 只会打印作者和贡献数量
  14. git shortlog -sn
  15. # 以提交贡献数量排序并打印出message
  16. git shortlog -n
  17. # 采用邮箱格式化的方式进行查看贡献度
  18. git shortlog -e
  19. # 查看 README.md 文件的修改历史记录,包括时间、作者以及内容
  20. git blame README.md

克隆

  1. # https 协议
  2. git clone https://github.com/xjh22222228/git-manual.git
  3. # SSH协议
  4. git clone git@github.com:xjh22222228/git-manual.git
  5. # 克隆某个分支, -b 指定分支名字
  6. git clone -b master https://github.com/xjh22222228/git-manual.git
  7. # 递归克隆,如果项目包含子模块就非常有用
  8. git clone --recursive git@github.com:xjh22222228/git-manual.git
  9. # 克隆深度为1, 不会把历史的记录也克隆,这样可以节省克隆时间
  10. git clone --depth=1 https://github.com/xjh22222228/git-manual.git

查看分支

  1. # 查看所有分支
  2. git branch --all
  3. # 查看本地分支
  4. git branch
  5. # 查看远端分支
  6. git branch -r

切换分支

  1. # 2种方法,切换到master分支
  2. git checkout master
  3. git switch master
  4. # 切换上一个分支
  5. git checkout -
  6. # 切换远端分支
  7. git checkout -t origin/dev

创建分支

  1. # 创建develop分支
  2. git branch develop
  3. # 创建develop分支并切换
  4. git checkout -b develop
  5. # 创建一个空的分支, 不继承父分支,历史记录是空的,一般至少需要执行4步
  6. git checkout --orphan develop
  7. # 这一步可选,如果你真的想创建一个没有任何文件的分支
  8. git rm -rf .
  9. # 添加并提交,否则分支是隐藏的 (执行这一步之前需要注意当前工作区必须保留一个文件,否则无法提交)
  10. git add -A && git commit -m "提交"
  11. # 推送到远程
  12. git push --set-upstream origin develop

删除分支

  1. # 删除本地分支
  2. git branch -d <branchName>
  3. # 删除远程分支
  4. git branch -d -r origin/<branchName>
  5. git push origin :<branchName>

重命名分支

  1. # 重命名当前分支
  2. git branch -m <branchName>

代码合并

  1. # 两步法, 将 feature/v1.0.0 分支代码合并到 develop
  2. git checkout develop
  3. git merge feature/v1.0.0
  4. # 或者一步法
  5. git merge feature/v1.0.0 develop

暂存

  1. # 暂存所有
  2. git add -A
  3. # 暂存某个文件
  4. git add ./README.md
  5. # 添加当前目录所有改动文件
  6. git add .
  7. # 暂存一系列文件
  8. git add 1.txt 2.txt ...

删除

git add 的反向操作

  1. # 删除1.txt 文件
  2. git rm 1.txt

提交

  1. # -m 提交的信息
  2. git commit -m "changes log"
  3. # 提交并显示diff变化
  4. git commit -v
  5. # 允许提交空消息,通常必须指定 -m 参数
  6. git commit --allow-empty-message
  7. # 重写上一次提交信息,确保当前工作区没有改动
  8. git commit --amend -m "新的提交信息"

推送

  1. # 推送内容到主分支
  2. git push -u origin master
  3. # 本地分支推送到远程, 本地分支:远程分支
  4. git push origin <branchName>:<branchName>
  5. # 简写,默认推送当前分支
  6. git push
  7. # 强制推送, -f 是 --force 缩写
  8. git push -f

拉取最新内容

  1. # 推荐,因为不会做自动合并
  2. git fetch origin master
  3. # 相当于git fetch 然后 git merge
  4. git pull
  5. # 后面的意思是: 远程分支名:本地分支名
  6. git pull origin master:master
  7. # 如果是要与本地当前分支合并,则冒号后面的<本地分支名>可以不写
  8. git pull origin master

查看文件的改动

  1. # 查看所有文件改动
  2. git diff
  3. # 查看具体文件的改动
  4. git diff README.md
  5. # 查看某个版本的改动, 后面那一窜是commitId, git log后就能看到
  6. git diff d68a1ef2407283516e8e4cb675b434505e39dc54
  7. # 查看某个文件的历史修改记录
  8. git log README.md
  9. git show d68a1ef2407283516e8e4cb675b434505e39dc54 README.md

回滚版本

  1. # 回滚上一个版本
  2. git reset --hard HEAD^
  3. # 回滚上两个版本
  4. git reset --hard HEAD^^
  5. # 回退到指定版本,git log 就能看到commit id了
  6. git reset --hard 'commit id'
  7. # 回滚版本是不保存在 git log,如果想查看使用
  8. git reflog

撤销

  1. # 撤销当前目录下所有文件的改动
  2. git checkout -- .
  3. # 撤销指定文件修改
  4. git checkout -- README.md
  5. # 暂存区回到工作区, 指定 ./README.md 文件从暂存区回到工作区
  6. git reset HEAD ./README.md
  7. # 撤销commit, 回到工作区, 一般commit id 是前一个
  8. git reset <commit_id>
  9. # 撤销commit, 并且把修改同时撤销
  10. git reset --hard <commit_id>

标签

  1. # 列出本地所有标签
  2. git tag
  3. # 列出远程所有标签
  4. git ls-remote --tags origin
  5. # 按照特定模式查找标签, `*` 模板搜索
  6. git tag -l "v1.0.0*"
  7. # 创建带有附注标签
  8. git tag -a v1.1.0 -m "标签描述"
  9. # 创建轻量标签, 不需要带任何参数
  10. git tag v1.1.0
  11. # 后期打标签, 假设之前忘记打标签了,可以通过git log查看commit id
  12. git log
  13. git tag -a v1.1.0 <commit_id>
  14. # 推送到远程,默认只是本地创建
  15. git push origin v1.1.0
  16. # 一次性推送所有标签到远程
  17. git push origin --tags
  18. # 删除标签, 你需要再次运行 git push origin v1.1.0 才能删除远程标签
  19. git tag -d v1.1.0
  20. # 删除远程标签
  21. git push origin --delete v1.1.0
  22. # 检查标签
  23. git checkout v1.1.0
  24. # 查看本地某个标签详细信息
  25. git show v1.1.0

Rebase

git rebase 主要作用可以将多个commit记录合并为一条

  1. # 操作最近4次提交
  2. git rebase -i HEAD~4
  3. # 或者以 commit_id 进行操作
  4. git rebase -i e88835de905ad396f61a0dc8c040a8ac8a34f3f8
  5. # 放弃 git rebase 操作
  6. git rebase --abort
  7. # 此命令主要用于解决冲突后继续执行
  8. git rebase --continue

参考:git rebase将多次commit合并为一条

GitFlow

Git Flow 不是内置命令,需要单独安装

初始化 每个仓库都必须初始化一次

  1. # 通常直接回车以完成默认设置
  2. git flow init

功能

  1. # 开启新的功能
  2. git flow feature start v1.1.0
  3. # 推送到远程, 在团队协作中这一步少不了
  4. git flow feature publish v1.1.0
  5. # 完成功能, 会将当前分支合并到 develop 然后删除分支,回到 develop
  6. git flow feature finish v1.1.0

打补丁

hotfix是针对 master 进行打补丁的

  1. # 开启新的 hotfix
  2. git flow hotfix start v1.1.0_hotifx
  3. # 推送到远程
  4. git flow hotfix publish v1.1.0_hotifx
  5. # 完成新的hotfix, 将当前分支合并到 master 和 develop,然后删除分支,回到 develop
  6. git flow hotfix finish v1.1.0_hotifx

发布

  1. # 开启新的 release
  2. git flow release start v1.1.0
  3. # 推送到远程
  4. git flow release publish v1.1.0
  5. # 完成, 将当前分支合并到 master 和 develop,删除当前分支然后回到 develop
  6. git flow release finish v1.1.0Git flow s

子模块

具体使用还可以看这里 git submodule子模块使用教程

  1. # 添加子模块
  2. git submodule add https://github.com/xjh22222228/git-manual.git
  3. # 更新,有2种方法
  4. # 一步到位
  5. git submodule update --remote
  6. # 或者进入到子模块项目再拉取
  7. git pull
  8. # 修复子模块分支指向 detached head
  9. git submodule foreach -q --recursive 'git checkout $(git config -f $toplevel/.gitmodules submodule.$name.branch || echo master)'
  10. # 删除子模块 common 为子模块名称,一般删除需要三部
  11. git submodule deinit <common>
  12. #清除子模块缓存
  13. git rm --cached common
  14. # 提交代码并推送
  15. git commit -am "Remove a submodule" && git push

帮助

  1. # 详细打印所有git命令
  2. git help
  3. # 打印所有git命令, 此命令不会有详细信息,更清晰一些
  4. git help -a
  5. # 列出所有可配置的变量
  6. git help -c

其他

  1. # 查看git版本
  2. git --version
  3. # 查看远程仓库地址
  4. git remote -v
  5. # 记住提交账号密码
  6. git config --global credential.helper store
  7. # 清除git已保存的用户名和密码
  8. # windows
  9. git credential-manager uninstall
  10. # mac linux
  11. git config --global credential.helper ""
  12. # 或者
  13. git config --global --unset credential.helper
  14. # 清除本地git缓存
  15. git rm -r --cached .

Git常用命令参考手册的更多相关文章

  1. git 命令参考手册 git中文命令参考手册大全

    git init # 初始化本地git仓库(创建新仓库)git config --global user.name "xxx" # 配置用户名git config --global ...

  2. Git版本控制软件结合GitHub从入门到精通常用命令学习手册(转)

    简要参考:http://www.tuicool.com/articles/mEvaq2 http://gitref.org/zh/index.html GIT 学习手册简介 本站为 Git 学习参考手 ...

  3. git 命令参考手册

    你的本地仓库由 git 维护的三棵“树”组成.第一个是你的 工作目录,它持有实际文件:第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动:最后是 HEAD,指向你最近一次提交后的结果. ...

  4. git常用命令2

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

  5. Git常用命令清单笔记

    git github 小弟调调 2015年01月12日发布 赞  |   6收藏  |  45 5k 次浏览 这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加 ...

  6. Git常用命令及使用,GitLab/GitHub初探,Git/Svn区别

    Git安装配置及常用命令 0 Git本地分支管理 1 Git远程分支管理 2 Git Tag标签管理 3 Git Log日志 4 其它高级命令 5 常规使用及介绍 6 角色权限 7 分支定义 8 一般 ...

  7. 转 Git 常用命令大全

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

  8. git常用命令3

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

  9. Git 常用命令速查表(图文+表格)【转】

    转自:http://www.jb51.net/article/55442.htm 一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git comm ...

随机推荐

  1. Hadoop之HDFS常用文件操作命令

    命令基本格式:hadoop fs -cmd < args > 1. ls 列出hdfs文件系统根目录下的目录和文件hadoop fs -ls /dirhadoop fs -ls -R /d ...

  2. CentOS7 firewalld docker 端口映射问题,firewall开放端口后,还是不能访问,解决方案

    # 宿主机ip: 192.168.91.19 docker run -itd --name tomcat -p 8080:8080 tomcat /usr/local/apache-tomcat-9. ...

  3. .log文件超过2.56MB?Pycharm的.log文件读取不完全?.log文件无法被调用?

    问题截图: 问题表现情况: 1.pycharm头部出现上图警告 2.该.log文件读取不完全 3.该.log文件无法被调用 解决步骤: 参考博客:https://blog.csdn.net/Shen1 ...

  4. java文件导出过程 CS、BS差别

    最近在做一个需求,类似和navicat工具差不多的,通过java代码吧数据库表的数据导出来.jdbc获取数据库连接,查询表数据,分批次用流写入文件txt.csv.json.xls.xlsx,搞定之后, ...

  5. OFD呼之欲来、来之跚跚,谁之罪?

    软件国产化的浪潮势不可挡,美国逼得逾甚,我们压迫感逾强,唯有奋起直追方慰平生之志. 在板式文档领域,pdf已成为国际标准,亦可称为美国标准:它在该领域一枝独秀,已形成一览众山小之势! pdf出道20余 ...

  6. ngx lua获取时间戳的几种方式

    原创自由de单车 最后发布于2017-02-14 14:58:43 阅读数 18218 收藏 在ngx_lua里,获取时间相关信息的方式大概有4种(见下面代码): print(string.forma ...

  7. OceanBase安装和使用

    链接 https://mp.weixin.qq.com/s?spm=a2c6h.12873639.0.0.41f92c9bH5FL2Y&__biz=MzU3OTc2MDQxNg==&m ...

  8. CentOS6下yum搭建LNMP环境

    1.关闭防火墙[root@CentOS ~]# chkconfig iptables off 2.关闭selinuxvi /etc/sysconfig/selinux //将SELINUX=enfor ...

  9. pandas_重采样多索引标准差协方差

    # 重采样 多索引 标准差 协方差 import pandas as pd import numpy as np import copy # 设置列对齐 pd.set_option("dis ...

  10. 如何使用PHP验证客户端提交的表单数据

    PHP 表单验证 本章节我们将介绍如何使用PHP验证客户端提交的表单数据. PHP 表单验证 在处理PHP表单时我们需要考虑安全性. 本章节我们将展示PHP表单数据安全处理,为了防止黑客及垃圾信息我们 ...