一、Git基本操作
1. 基本命令
- 详细说明
shell
# 拉取远程项目
git clone url
# 重命名本地仓库名称,若不指定则默认与远程仓库同名
git clone url local_name
# 分支相关
# 新建分支并切换分支
git checkout -b branch_name
# 基于远程分支新建分支并切换分支
git checkout -b branch_name origin/branch_name
# 新建分支
git branch branch_name
# 切换分支
git checkout branch_name
# 本地分支合并
git merge branch_name
# 撤销[不加分支]
git checkout
# 撤销某个文件
git checkout -- filename
# 撤销全部
git checkout -- .
# 删除分支
# 删除本地分支 未合并的的分支,会删除失败
git branch -d 本地分支名称
# 强制删除本地分支
git branch -D 本地分支名称
# 删除远程分支
git push origin --delete 远程分支名称
# 查看处于未合并(unmerged)状态的文件 参数 -s 或者 --short 表示状态概览
git status [-s]
# 查看每一个分支的最后一次提交
git branch -v
# 查看哪些分支已经合并到当前分支
git branch --merged [branch_name]
# 查看所有包含未合并工作的分支 可以加上具体的分支名,表示尚未合并到该分支的分支有哪些
git branch --no-merged [branch_name]
# 提交相关
# fetch 远程代码,将数据拉取到本地仓库,并不会自动合并或修改你当前的工作区
git fetch origin 远程分支名称
# 推送/强制覆盖提交
git push origin branch_name [--force]
# 拉取 方式一
git pull origin master
# 拉取 方式二
git fetch + git merge
# 查看某次提交内容
git show commit_id
# 针对文件筛选加入暂存区
git add filename
git add filename1 filename2 ...
git add *.cpp
# 针对文件状态加入暂存区
# 提交所有被删除和修改的文件到数据暂存区
git add -u 或者 git add --update
# 提交所有修改的和新建的数据暂存区
git add .
# 提交所有被删除、被替换、被修改和新增的文件到数据暂存区
git add -A 或者 git add --all
# 提交暂存中的内容
git commit -m "commit_message"
# 简化操作
git commit -a -m "commit_message" = git add -u + git commit -m "commit_message"
# 修改上次提交注释
git commit --amend
# 文件移动
git mv file_from file_to = mv file_from file_to + git rm file_from+git add file_to
# 文件删除
# 从暂存区移除文件
git rm filename
# 从暂存区移除,但是不从工作目录删除(用于处理忘记加到.gitignore中的文件们)
git rm --cached filename
git rm --cached dirname -r
# 远程地址
# 添加远程仓库地址
git remote add origin xxx.git
# 查看本地添加了哪些远程地址
git remote -v
# 删除本地指定的远程地址
git remote remove origin
# 撤销某次push提交
git revert commitId
# 撤销某次commit提交
git reset commitId
# 查看历史版本
git reflog
# 文件从暂存区删除
git rm --cached filename
# 查看代码改动人员
git blame filename
# stash
# 暂存当前的工作区的文件,每次git stash都会生成一个stash@{no},
# 也就是放到了一个列表中,no是列表的编号,恢复时选择对应的stash@{no}即可
git shash
# 查看所有暂存的stash列表
git stash list
# 查看指定暂存文件的内容
git stash show stash@{no}
# 恢复最新的暂存文件(即unstash)
git shash pop
# 恢复指定的暂存文件(即unstash)
git stash apply stash@{no}
# 删除指定的暂存文件
git stash drop stash@{no}
# 清除所有暂存文件
git stash clear
# 查看帮助
git stash --help
# 查看日志
# 查看提交历史
git log
# 查看提交历史,并显示统计信息
git log --stat
# 查看提交历史,并显示提交差异
git log -p
# 查看最近六次提交历史
git log -6
# 查看提交历史,并图形化显示分支和合并,比较有用的一个命令
git log --graph
# 自定义格式化
git log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an>%Creset' --abbrev-commit
# 未暂存部分的具体改变
# 可查看已暂存部分的改变
git diff --staged
# 查看某文件的修改
git diff filename
# 可图形界面查看不同,object1,object2为commit对象或者分支对象
git difftool -d object1 object2
# 标签
# 列出已有标签
git tag
# 打一个附注标签
git tag -a v1.0 -m "version 1.0"
# 打一个轻量标签
git tag v1.0
2. git配置用户信息
- 查看配置
config
配置有system
级别global(用户级别)
和local(当前仓库)
三个,设置先从system-> global -> local
底层配置会覆盖顶层配置分别使用--system/global/local
可以定位到配置文件git config --local --list
- 推荐局部配置【
--global 可以换成 --local/--system
】git config --global --unset user.name
git config --global --unset user.email
- 更改git邮箱配置
git config --local user.email xxx@xxx.com
- 更改git名称配置
git config --local user.name xxx
3. git add .
、git add -A
和git add -u
的区别
Git Version 1.x:
Git Version 2.x: