git命令
配置
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改
git config user.name "你的姓名"
git config user.email "你的邮箱"
– global
通过 --global
选项可以设置全局配置信息
git config --global user.name "你的姓名"
git config --global user.email "你的邮箱"
检查配置
# 打印所有config
git config --list
# 打印指定config
git config user.name
创建仓库 - repository
进入希望纳入 git 版本控制的项目目录,使用 git init
初始化
git init
该命令将创建一个名为 .git
的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这个目录也是上面我们说的三个区域之一,这个目录也是 Git 保存数据记录的地方,非常重要,如非必要,不要轻易改动
查看工作区的文件状态
git status
乱码
git status 显示乱码
git config --global core.quotepath false
添加工作区文件到暂存区
git add
git add 1.txt
# 添加多个文件
git add 2.txt 3.txt
# 添加整个目录
git add ./a
# 添加多个目录
git add ./b ./c
# 添加所有文件
git add .
创建版本
git commit
将暂存区里的改动给提交到本地 git 仓库,也就是为这次工作(一般会把某个具有特定意义的工作作为一个版本,它可以是多个文件的变化)
提交备注
每次提交都需要填写备注信息
git commit
# 会调用默认(或自定义)的文本编辑器
单行备注
git commit -m 备注信息
查看提交日志
// 完整格式
git log
// 简要格式(单行)
git log --oneline
修复提交
git commit --amend
修复(替换上一次)提交,在不增加一个新的提交版本的情况下将新修改的代码追加到前一次的提交中
git commit --amend -m 提交
删除
git rm
# 从 git 仓库与工作区中删除指定文件
git rm 文件
# 只删除 git 仓库中的文件
git rm --cached 文件
# rm 以后,需要 commit 这次操作,否则 rm 将保留在暂存区
git commit -m 修正
撤销重置
从暂存区中撤销到工作区
// 从暂存区中撤销一个指定文件
git reset HEAD 文件名称
// 从暂存区中国年撤销所有文件
git reset HEAD .
该命令既可以用于回退版本
# 回退到指定的 commitID 版本
git reset --hard commitID
比较
# 比较 工作区和暂存区
git diff 文件
# 比较 暂存区和仓库
git diff --cached [commitId] 文件
# 比较 工作区和仓库
git diff commitId filename
# 比较 仓库不同版本
git diff commitId1 commitId2
分支
我们的开发就像是游戏的任务,默认是在主线(master)上进行开发的。许多时候,还有各种支线任务,git 支持我们创建分支来进行项目开发
查看分支
git branch
创建分支
git branch 分支名称
切换分支
git checkout 分支名称
# 也可以使用 checkout -b 来新建分支
git checkout -b 分支名称
分支合并
# B 合并到 A,需要切换到 A 分支
git merge 被合并分支
# 查看已经合并的分支
git branch --merged
# 查看未合并的分支
git branch --no-merged
删除分支
# 如果分支为未合并状态,则不允许删除
git branch -d 分支名称
# 强制删除
git branch -D 分支名称
合并记录
rebase
# 合并 HEAD 前两个祖先记录
git rebase -i HEAD~2
合并冲突
有的时候,不同的分支可能会对同一个文件内容和位置上进行操作,这样在合并的过程中就会产生冲突
- 查看冲突文件
- 修复冲突内容
- 提交
标签
有的时候,我们希望给某一个特定的历史提交打上一些标签
新建 tag
git tag -a v1.0.0 HEAD/commitId
提交(同步)远程
同步本地仓库到远程
git push -u origin master
# -u 简化后续操作
git push origin master
查看 tag
git tag
git 远程
远程分支
# 提交到远程(分支)
git push origin [本地分支名称]:[远程分支名称]
# 远程先创建好分支然后拉取到本地
git checkout -b [本地分支名称] origin/[远程分支名称]
# 拉取远程分支到本地
git pull origin [远程分支名称]:[本地分支名称]
# 查看远程仓库
git remote show origin
# 查看本地分支
git branch
# 查看远程分支
git branch -r
# 查看所有分支
git branch -a
# 删除本地分支
git branch -d [本地分支名称]
# 删除远程分支
git push origin --delete [远程分支名称]
# or
git push origin :[远程分支名称]
# 设置默认提交分支
git branch --set-upstream-to=origin/[远程分支名称] [本地分支名称]