git常用命令
基础命令
- 初始化
git init
- 指定文件跟踪,添加到暂存区
git add * //指定所有文件
git add --all //指定所有文件
git add <file> //指定文件
- 提交
git commit -m 'initial project version'
git commit --amend // 修改最近一条提交备注信息
- 修改最后一次提交
# 修改你最近一次提交可能是所有修改历史提交的操作中最常见的一个。 对于你的最近一次提交,你往往想做两件事情:简单地修改提交信息, 或者通过添加、移除或修改文件来更改提交实际的内容
git commit --amend
- 检查当前文件状态
git status
git status --s //状态简览
- 删除
# 使用git rm删除文件,同时会将这个删除操作记录下来
git rm
# 当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用
git rm filename --cached
- 分支管理
# 查看分支
git branch
# 查看已合并的分支
git branch --merged
# 查看无合并的分支
git branch --no-merged
# 查看本地分支及最后提交简览
git branch -v
# 查看本地分支与对应远程分支关系
git branch -vv
# 查看所有分支
git branch -a
# 创建分支
git branch dev1
# 删除分支
git branch -d dev1
# 切换分支
git checkout testing
# 分支的创建并切换
git checkout -b testing
# 合并分支
git merge dev
# 变基
git rebose dev
- merge合并分支冲突解决
// 合并
git merge dev
git statu -s // 查看冲突文件
// 将合并冲突改好之后
git add .
git commit
- rebose编辑合并冲突解决
合并失败可能会阻止此过程完全自动化。
git rebase --continue。解决任何此类合并失败并运行
git rebase --skip。绕过使用导致合并失败的提交
git rebase --abort 要检出原始的并删除.git / rebase-apply工作文件
- 远程仓库
# 克隆
git clone https://github.com/lch/manager
# 查看
git remote -v
# 查看远程分支信息
git remote show <remote>
# 添加
git remote add origin https://github.com/lch/manager/ticgit
# 更新
git fetch <remote>
git fetch --all
# 这样就可以实现在本地删除远程已经不存在的分支
git fetch --prune
git fetch -p
git fetch -p origin
git remote prune origin
# 从远程获取最新版本到本地
git fetch origin dev:dev
# 拉取
git pull origin master
# 推送
git push origin master
# 重命名
git remote rename origin paul
# 移除
git remote remove origin paul
# 删除远程分支
git push origin --delete serverfix
# 跟踪分支
git checkout -b <branch> <remote>/<branch>
git checkout --track origin/serverfix
# 新建一个
git branch -u origin/serverfix
- 忽略文件
cat .gitignore
- 查看文件变动
git diff # 可指定版本号、标签查看文件内容变动部分
git diff --staged # 可查看到与暂存区的文件内容变动
git diff --name-only # 只列出修改的文件路径
- 查看提交历史
git log
git log 的常用选项
| 选项 | 说明 |
|---|---|
| -p | 按补丁格式显示每个提交引入的差异。 |
| --stat | 显示每次提交的文件修改统计信息。 |
| --shortstat | 只显示 |
| --name-only | 仅在提交信息后显示已修改的文件清单。 |
| --name-status | 显示新增、修改、删除的文件清单。 |
| --abbrev-commit | 仅显示 |
| --relative-date | 使用较短的相对时间而不是完整格式显示日期(比如“2 |
| --graph | 在日志旁以 |
| --pretty | 使用其他格式显示历史提交信息。可用的选项包括oneline、short、full、fuller和format(用来定义自己的格式)。 |
| --oneline | --pretty=oneline --abbrev-commit 合用的简写。 |
| -<n> | 仅显示最近的 n 条提交。 |
| --since, --after | 仅显示指定时间之后的提交。 |
| --until, --before | 仅显示指定时间之前的提交。 |
| --author | 仅显示作者匹配指定字符串的提交。 |
| --committer | 仅显示提交者匹配指定字符串的提交。 |
| --grep | 仅显示提交说明中包含指定字符串的提交。 |
| -S | 仅显示添加或删除内容匹配指定字符串的提交。 |
- 版本回退
- git reset [HEAD]
用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变
git reset HEAD^ # 回退所有内容到上一个版本
git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本
git reset 052e # 回退到指定版本
- git reset --hard HEAD
--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
git reset –hard HEAD~3 # 回退上上上一个版本
git reset –hard bae128 # 回退到某个版本回退点之前的所有信息。
git reset --hard origin/master # 将本地的状态回退到和远程的一样
- git checkout <file_name>
指定文件撤销工作区变动 退回上一个版本
- 标签
# 查看标签
git tag
# 搜索标签
git tag -l "*"
# 附注标签
git tag -a v1.4 -m "my version 1.4"
# 轻量标签
git tag v1.4-lw
# 指定版本补标签
git tag -a v1.2 9fceb02
# 共享标签
git push origin v1.5
git push origin --tags
# 删除标签
git tag -d v1.4-lw
# 删除远程标签
git push origin --delete <tagname>
# 检出标签
git checkout -b version2 v2.0.0
- 贮藏与清理
想要切换分支,但是还不想要提交之前的工作;所以贮藏修改。
# 将新的储藏暂存到栈上
git stash
# 查看贮藏内容
git stash list
# 还原最新的贮藏
git stash apply
# 指定储藏的索引进行还原
git stash apply --index 1
# 使用贮藏创建一个分支
git stash branch <new branchname> <index>
# 清理贮藏
git stash drop 1 # 指定索引移除贮藏
git stash drop # 移除最新的贮藏
浙公网安备 33010602011771号