文章目录
- 配置Git
- [创建⼀个 Git 本地仓库](#创建⼀个 Git 本地仓库)
- 添加文件
- 查看git的信息
- 版本回退
- 撤销修改
- 分支管理
- [bug 分支](#bug 分支)
- 远程操作
- 给命令配置别名
- 标签管理
配置Git
设置用户名称 和 e-mail 地址
bash
git config [--global] user.name "Your Name"
git config [--global] user.email "email@example.com"
--global 是⼀个可选项,如果使⽤了该选项,表⽰这台机器上所有的 Git 仓库都会使⽤这个配置。
删除对应配置配置的命令
bash
git config [--global] --unset user.name
git config [--global] --unset user.email
创建⼀个 Git 本地仓库
在⽂件⽬录下执行
bash
git init
添加文件
使用 git add 命令可以将⽂件添加到暂存区
添加⼀个或多个⽂件到暂存区
bash
git add [file1] [file2] ...
添加指定⽬录到暂存区,包括⼦⽬录
bash
git add [dir]
添加当前⽬录下的所有⽂件改动到暂存区
bash
git add .
使用 git commit 命令将暂存区内容添加到本地仓库中
提交暂存区全部内容到本地仓库中
bash
git commit -m "message"
提交暂存区的指定⽂件到仓库区:
bash
git commit [file1] [file2] ... -m "message"
git commit 后⾯的 -m 选项,要跟上描述本次提交的 message,由⽤⼾⾃⼰完成,这部分内容绝对不能省略,并要好好描述,是⽤来记录你的提交细节,是给我们自己看的。
查看git的信息
查看历史提交记录
bash
git log [--graph] [--pretty=oneline] [--abbrev-commit]
查看本地的每⼀次命令
bash
git reflog
查看状态
bash
git status
显示暂存区和工作区文件的差异
bash
git diff [file]
查看当前本地所有分支
bash
git branch
版本回退
执⾏ git reset 命令⽤于回退版本,可以指定退回某⼀次提交的版本。要解释⼀下"回退"本质是要将版本库中的内容进行回退,工作区或暂存区是否回退由命令参数决定
bash
git reset [--soft | --mixed | --hard] [HEAD]
--soft 参数对于⼯作区和暂存区的内容都不变,只是将版本库回退到某个指定版本。
--mixed 为默认选项,使⽤时可以不⽤带该参数。
该参数将暂存区的内容退回为指定提交版本内容,⼯作区⽂件保持不变。
--hard 参数将暂存区与⼯作区都退回到指定版本。切记⼯作区有未提交的代码时不要⽤这个
命、令,因为⼯作区会回滚,你没有提交的代码就再也找不回了,所以使⽤该参数前⼀定要慎重。
HEAD 说明
可直接写成 commit id,表⽰指定退回的版本
HEAD 表⽰当前版本
HEAD^ 上⼀个版本
HEAD^^ 上上⼀个版本
...
可以使⽤ 〜数字表⽰:
HEAD~0 表⽰当前版本
HEAD~1 上⼀个版本
HEAD~2 上上⼀个版本
...
撤销修改
让工作区的文件回到最近⼀次 add 或 commit 时的状态
bash
git checkout -- [file]
分支管理
创建分支
bash
git branch dev #新建分⽀dev
切换分支
bash
git checkout dev
合并分支
bash
git merge [--no-ff -m "merge with no-ff"] dev2
--no-ff 表示要进行一次重新的commit
删除分支
cpp
git branch -d name
-D 强行删除分支
bug 分支
将当前的工作区信息进行储藏
cpp
git stash
查看stash列表
cpp
git stash list
将stash数据恢复出来
cpp
git stash pop
远程操作
创建SSH Key
bash
ssh-keygen -t rsa -C "email"
克隆远程仓库
bash
git clone 地址
查看远程库的信息
bash
git remote -v
向远端推送
bash
git push <远程主机名> <本地分⽀名>:<远程分⽀名>
# 如果本地分⽀名与远程分⽀名相同,则可以省略冒号:
git push <远程主机名> <本地分⽀名>
拉取远程仓库
bash
git pull <远程主机名> <远程分⽀名>:<本地分⽀名>
# 如果远程分⽀是与当前分⽀合并,则冒号后⾯的部分可以省略。
git pull <远程主机名> <远程分⽀名>
给命令配置别名
将 git status 简化为 git st
bash
git config --global alias.st status
--global 参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有⽤。如果不加,那只针对当前的仓库起作⽤。
配置⼀个 git last ,让其显⽰最后⼀次提交信息
bash
git config --global alias.last 'log -1'
标签管理
标签 tag ,可以简单的理解为是对某次 commit 的⼀个标识,相当于起了⼀个别名。
创建标签
在Git中打标签⾮常简单,⾸先,切换到需要打标签的分支上
bash
git tag [name]
查看所有标签
bash
git tag
在指定的commit上打标签
bash
git tag name commitid
查看标签信息
bash
git show [tagname]
Git 还提供可以创建带有说明的标签,⽤-a指定标签名,-m指定说明文字
bash
git tag -a [name] -m "XXX" [commit_id]
操作标签
删除标签
bash
git tag -d name
推送标签到远程
bash
git push origin <tagname>
# 如果你本地有很多标签,也可以⼀次性的全部推送到远端
git push origin --tags
删除远程标签
首先需要先把标签从本地删除
bash
git push origin :name
name 要写在:后面