文章目录
常用指令(基本操作)
指令 | 说明 |
---|---|
git pull | 拉取一下当前分支对应的远端分支的变化并合并到当前分支。相当于git fetch + git merge。 |
git branch | 查看本地所有分支及当前分支名(初次clone后看到的分支都应该是master) |
git checkout –b dev origin/dev | 基于远程dev分支,创建本地的dev分支来跟踪它 |
git branch xx_dev | 基于当前分支,创建自己的dev分支 |
git checkout xx_dev | 从当前分支切换到自己的分支 |
git status | 查看当前状态(每次commit之前都使用git status查看一下状态) |
git add xx_dev.md | 把没有添加到版本管理的文件添加到版本管理 |
git commit –am “update” git commit “./xx_dev.md”-m “update” git commit “./xx_dev.md.1” “./xx_dev.md.2” –m “update” | -a 表示提交全部 -m 表示给该次提交做一个备注 |
git push –u origin xx_dev | 提交到远端。(第一次创建本地分支(没有对应的远端分支)的情况下,使用 –u 参数,把本地分支和远端分支做关联。) |
git checkout dev | 切换回dev分支 |
git merge dev | 合并dev分支内容至当前分支 |
git merge origin/dev | 合并远程dev分支至当前分支 |
git branch –D dev | 删除dev分支 |
git diff xx_dev.md | 查看当前工作区修改与本地库之间的差异 |
git checkout xx_dev.md | 还原文件到本地库最近版本 |
提交文件(git commit)
- 提交到版本库,并指定提交信息:git commit -m “message”
- 提交所有已跟踪全部文件,并指定提交信息:git commit -am “message”
- 追加提交(不新增commitId,将修改代码追加到前一次的commitId):git commit --amend
还原指定文件的修改(git checkout)
- 未做任何操作,只是修改了文件:git checkout fileName。
- 执行了add操作,文件推到了暂存区:git reset HEAD 回退到当前版本,然后 git checkout fileName。
- 执行了commit操作,文件到了本地仓库:git reset HEAD^ 回退到上一版本,然后 git checkout fileName。
查看文件差异(git diff)
- 本地工作区和暂存区:git diff 或 git diff fileName
- 暂存区和版本库:git diff --cache
- 版本库中不同commit、分支:git diff commit1 commit2 或 git diff branch1 branch2
- 查看两个分支的diff(分支可以是本地、也可以是远程的): git diff branch1 origin/branch2 或 git diff branch1 branch2 --stat (–stat参数,显示两分支简单diff信息) 或 git diff branch1 branch2 path (显示两分支指定路径下文件的详细diff信息) 或 git diff branch1 branch2 fileName(显示两分支指定文件的详细diff信息,fileName需要带路径)
缓存当前工作内容(git stash)
- 存储工作区和缓存区:git stash | git stash save “name”
- 恢复工作区和缓存区并删除缓存:git stash pop [stash_id] (从堆栈中删除本次缓存)
- 恢复工作区和缓存区不删除缓存:git stash apply [stash_id]
- 删除单个存储进度:git stash drop [stash_id]
- 删除所有存储进度:git stash clear
- 存储版本列表:git stash list
- 最新保存的stash和当前目录的差异:git stash show [stash_id]
- 最新保存的stash和当前目录的差异:git stash show [stash_id] -p (查看详细不同)
[stash_id] --不指定stash_id则默认最新的存储
清除Untracked files
git clean -nf:查看删除文件(先不删除,确认文件没错后执行git clean -n)