ArkShen 2020-05-04
# 查看配置列表 git config -l # 查看已设置的用户名 git config --global --get user.name # 设置用户名 git config --global user.name "xiaoming" # 查看已设置的邮箱 git config --global --get user.email # 设置邮箱 git config --global user.email "" 复制代码
# 会在当前目录生成.git git init
git status
# 查看完整历史提交记录 git log # 查看前N次提交记录 commit message git log -2 # 查看前N次提交记录,包括diff git log -p -2 # 搜索关键词 git log -S 你好 # 列出提交者贡献数量 git shortlog -sn 复制代码
# https 协议 git clone https://github.com/xjh22222228/git-manual.git # SSH协议 git clone /xjh22222228/git-manual.git # 克隆某个分支, -b 后面分支名字 git clone -b v2.8.0 https://github.com/xjh22222228/git-manual.git # 递归克隆,如果项目包含子模块就非常有用 git clone --recursive /xjh22222228/git-manual.git # 克隆深度为1, 不会把历史的记录也克隆,这样可以节省克隆时间 git clone --depth=1 https://github.com/xjh22222228/git-manual.git 复制代码
# 查看所有分支 git branch --all # 查看本地分支 git branch # 查看远端分支 git branch -r
# 2种方法,切换到master分支 git checkout master git switch master # 切换上一个分支 git checkout -
# 创建develop分支 git branch develop # 创建develop分支并切换 git checkout -b develop # 切换远端分支 git checkout -t origin/dev
# 删除本地分支 git branch -d <branchName> # 删除远程分支 git branch -d -r origin/<branchName> git push origin :<branchName>
# 重命名当前分支 git branch -m <branchName>
# 两步法, 将 feature/v1.0.0 分支代码合并到 develop git checkout develop git merge feature/v1.0.0 # 或者一步法 git merge feature/v1.0.0 develop
# 暂存所有 git add -A # 暂存某个文件 git add ./README.md # 添加当前目录所有改动文件 git add . # 暂存一系列文件 git add 1.txt 2.txt ...
git add 的反向操作
# 删除1.txt 文件 git rm 1.txt
# -m 提交的信息 git commit -m "changes log" # 提交显示diff变化 git commit -v
# 推送内容到主分支 git push -u origin master # 本地分支推送到远程, 本地分支:远程分支 git push origin <branchName>:<branchName> # 简写,默认推送当前分支 git push # 强制推送, -f 是 --force 缩写 git push -f
# 推荐使用这个,因为不会做自动合并 git fetch origin master # 相当于git fetch 然后 git merge git pull # 后面的意思是: 远程分支名:本地分支名 git pull origin master:master # 如果是要与本地当前分支合并,则冒号后面的<本地分支名>可以不写 git pull origin master
# 查看所有文件改动 git diff # 查看具体文件的改动 git diff README.md # 查看某个版本的改动, 后面那一窜是commitId, git log后就能看到 git diff d68a1ef2407283516e8e4cb675b434505e39dc54 # 查看某个文件的历史修改记录 git log README.md git show d68a1ef2407283516e8e4cb675b434505e39dc54 README.m
# 回滚上一个版本 git reset --hard HEAD^ # 回滚上两个版本 git reset --hard HEAD^^ # 回退到指定版本,git log 就能看到commit id了 git reset --hard ‘commit id‘ # 回滚版本是不保存在 git log,如果想查看使用 git reflog
# 撤销当前目录下所有文件的改动 git checkout -- . # 撤销指定文件修改 git checkout -- README.md # 暂存区回到工作区, 指定 ./README.md 文件从暂存区回到工作区 git reset HEAD ./README.md # 撤销commit, 回到工作区, 一般commit id 是前一个 git reset <commit_id> # 撤销commit, 并且把修改同时撤销 git reset --hard <commit_id>
# 列出标签 git tag # 按照特定模式查找标签, `*` 模板搜索 git tag -l "v1.0.0*" # 创建带有附注标签 git tag -a v1.1.0 -m "标签描述" # 创建轻量标签, 不需要带任何参数 git tag v1.1.0 # 后期打标签, 假设之前忘记打标签了,可以通过git log查看commit id git log git tag -a v1.1.0 <commit_id> # 推送到远程,默认只是本地创建 git push origin v1.1.0 # 一次性推送所有标签到远程 git push origin --tags # 删除标签, 你需要再次运行 git push origin v1.1.0 才能删除远程标签 git tag -d v1.1.0 # 删除远程标签 git push origin --delete v1.1.0 # 检查标签 git checkout v1.1.0
# 查看远程仓库地址 git remote -v # 记住提交账号密码 git config --global credential.helper store # 清除git已保存的用户名和密码 # windows git credential-manager uninstall # mac linux git config --global credential.helper store # 清除本地git缓存 git rm -r --cached .