Git教程

Git介绍

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git下载安装

根据需要去Git官网下载对应版本即可

  1. 打开安装包,出现如下的对话框,这一步点Next。
    安装1

  2. 选择一些配置方式,按照需求选择,一般默认就可以,完成后Next。
    安装2

  3. 选择默认编辑器,根据需要自行选择,不知怎么选默认也可以,点击Next。
    安装3

  4. 在新的存储库中调整初始分支的名称,需要更改的话选择下面,点击Next。
    安装4

  5. 调整环境变量,根据需求选择,点击Next。
    安装5

  Use Git from Git Bash only:这是最安全的选择,因为你的PATH根本不会被修改,你只能使用Git Bash的Git命令行工具。
  Use Git from the Windows Command Prompt:这个选项被认为是安全的,它只向PATH添加一些最小的Git包,以避免使用可选的Unix工具混淆环境。你将能够从Git Bash和Windows命令提示符中使用Git。建议选择此项。
  Use Git and optional Unix tools from the Windows Command Prompt:Git和可选的Unix工具都将添加到计算机的PATH中。警告:这将覆盖Windows工具,如“find”和“sort”,只有在了解其含义后才使用此选项。

  1. 选择HTTPS传输后端,默认即可,点击Next。
    安装6

  2. 配置结束换行符,默认即可,点击Next。
    安装7

  3. 配置与Git Bash一起使用的模拟终端,保持默认即可,点击Next。
    安装8

  4. 设置git pull的默认行为,根据需要选择,点击Next。
    安装9

  5. 选择凭证管理器,默认即可,点击Next。
    安装10

  6. 配置额外的选项,根据需要选择,点击Next。
    安装11

  7. 实验功能,默认选择即可,完成后安装即可。
    安装12

Git初始配置

安装成功后,可以在鼠标右键菜单栏中看到Git GUI Here和Git Bash Here选项,
右键菜单

完成安装后,还需添加自己的账号信息,先去Github或者GitTree注册个自己的账号,之后在Git环境中添加个人信息。

打开命令行或者Git Bash,替换成自己的信息输入以下命令设置即可。

1
2
git config --global user.name “Your Name”
git config --global user.email “email@example.com”

至此Git的安装设置就基本完成了,可以在本机正常使用了。

Git Bash指令

可以参考廖雪峰Git教程,这里简但叙述下。

Git速查表

创建版本库

指令 功能
git clone https://gitee.com/xxx.git 克隆远程仓库到本地
git init 初始化本地 git 仓库(新建仓库)

本地更改

指令 功能
git status 查看当前版本状态(是否修改)
git add <path> 将该文件添加到暂存
git add . 将所有修改过的工作文件提交暂存区(新版本包括被删除的文件)
git add -u 提交被修改和被删除文件,不包括新文件
git add -A 提交所有变化
git rm --cached <path> 将该文件从暂存中删除
git commit -m “<message>” 提交
git commit --amend -m “<message>” 合并上一次提交(用于反复修改)
git commit -am “<message>” 将 add 和 commit 合为一步
git diff 显示工作区与仓库之间的区别
git diff HEAD 显示工作区与指定仓库之间的区别
git diff --cached 显示缓存区与仓库之间的区别
git restore <path> 丢弃工作区的修改
如果没有提交到缓存区,则恢复到和版本库一样的状态
如果已经提交到了缓存区后,又进行了修改,则恢复到缓存区的状态
git restore --staged <file> 可以把暂存区的修改撤销掉,重新放回工作区
git stash 保存当前工作区,可以保存多个
git stash list 查看当前保存的工作区
git stash apply 恢复工作区,但不清除缓存区
git stash drop 恢复工作区的同时清除缓存区
git stash apply stash@{0} 使用标号恢复指定的工作区
git cherry -pick <commit> 复制一个特定的提交到当前分支

查看信息及记录

指令 功能
git log 显示所有提交过的版本信息
git log --pretty=oneline 简化显示,只显示版本号和提交时的备注信息
git log --graph 可视化分支路径
git reflog 查看所有分支的所有操作记录
git show <commit> 显示某个提交的详细内容
git show <tag-name> 显示某个标签的详细内容
git blame <file> 在每一行显示[commit号,提交者,最早提交日期]

分支及标签

指令 功能
git branch 显示本地分支
git branch <new-branch> 新建分支
git branch --track <new> <remote> 创建新分支跟踪远程分支
git branch -d <branch> 删除本地分支
git tag <tag-name> 给当前分支打标签
git tag <commit> 给指定的提交打标签
git tag -a <tag-name> -m “<message>”<commit> 给指定的提交打标签,并加入说明信息
git tag -d <tag-name> 删除指定标签
git checkout -b <branch> 创建并切换到新建的分支
git checkout <branch> 切换分支
git switch -c <branch> 创建并切换到新建的分支
git switch <branch> 切换分支

更新与发布

指令 功能
git remote 查看远程库的信息
git remote -v 列出远程分支详细信息
git remote show <remote> 显示某个分支信息
git remote add <remote> <url> 添加一个新的远程仓库
git fetch <remote> 获取远程分支,但不更新本地分支,另需 merge
git pull <remote> <branch> 获取远程分支,并更新本地分支
git push <remote> <branch> 推送本地更新到远程分支
git push <remote> --delete <branch> 删除一个远程分支
git push <remote> <tagname> 推送本地标签
git push <remote> --tags 推送本地的所有标签
git push <remote> :refs/tags/<tagname> 删除一个远程标签
git rebase 变基操作,整理分支合并历史

合并与冲突

指令 功能
git merge <branch> 合并分支到当前分支,存在两个
git merge --no-ff <branch> 禁用Fast forward合并分支
git rebase <branch> 合并分支到当前分支,存在一个
git rebase --abort 回到执行 rebase 之前
git rebase --continue 解决矛盾后继续执行 rebase
git mergetool 使用 mergetool 解决冲突
git add <resolve-file> 使用冲突文件解决冲突
git rm <resolved-file>

版本回溯

指令 功能
git reset --hard HEAD 将当前版本重置为 HEAD(用于 merge 失败)
git reset --hard HEAD^ 将当前版本重置为 HEAD的上一个版本
git reset --hard HEAD~100 将当前版本重置为 HEAD的前100个版本
git reset --hard <commit> 将当前版本重置至某一个提交状态(慎用!)
git reset <commit> 将当前版本重置至某一个提交状态,代码不变
git reset --merge <commit> 重置至某一状态,保留版本库中不同的文件
git reset --keep <commit> 重置至某一状态,重置变化的文件,代码改变
git checkout HEAD <file> 丢弃本地更改信息并将其存入特定文件
git revert <commit> 撤消提交

其他

指令 功能
git help <command> 获取命令行上的帮助