Git 操作命令清单
专用名词的译名
- Workspace 工作区
- Indes/Stage 暂存区
- Local Repository 仓库区或本地仓库
- Remote Repository 远程仓库
一、新建代码库
# 在当前目录新建一个Git代码库
$ git init
# 新建一个目录,将其初始化为Git代码库
$ git init [project-name]
# 下载一个项目和它的整个代码历史
$ git clone [url] *
二、代码提交/回退操作
1' 文件在工作区内修改
# 放弃工作区的修改,即把修改的文件回退到初始状态
# modified --> origin 文件位置 : 始终在工作区
$ git checkout --<file>
$ git checkout .
--------------------------------------------------------------------------------
2' 文件添加到暂存区
# modified --> staged 文件位置 : 工作区 --> 暂存区
$ git add .
$ git add <file/dir>
# staged --> modified 文件位置 : 暂存区 --> 工作区
$ git reset <file> * 对于已经被 Git 追踪的文件
$ git reset HEAD <file> * 对于从来没有被 Git 追踪过,是 new file 的文件
# staged --> origin 文件位置 : 暂存区 --> 工作区
$ git reset --hard * 暂存区中所有修改都会被丢弃。修改内容也不会被重新放到工作区
--------------------------------------------------------------------------------
3' 文件添加到本地仓库
# staged --> local 文件位置 : 暂存区 --> 本地仓库
$ git commit -m "description" * 批量提交
$ git commit [file1] [file2] ... -m [message] * 指定文件提交
# local --> staged 文件位置 : 本地仓库 --> 暂存区
$ git reset --soft HEAD~1 * 如果要撤销本地两次修改,则改成 HEAD~2 即可
--------------------------------------------------------------------------------
4' 文件推送到远程仓库
# local --> remote 文件位置 : 本地仓库 --> 远程仓库
$ git push origin [remote] * 推送本地分支到指定远程分支
$ git push [remote] [branch] * 推送指定本地分支到远程仓库
# 使用 force 选项来将本地库 force 覆盖远端仓库,强制 push 到远端
$ git push -f
三、查看信息
$ git status * 显示有变更的文件以及所在位置
$ git branch -r * 显示出所有的分支名称
--------------------------------------------------------------------------------
# 查询版本变动日志log信息
$ git log * 显示当前分支的版本历史
$ git log --pretty=oneline * 显示单行所有版本历史信息
$ git log -p [file] * 显示指定文件相关的每一次diff
$ git log -5 --pretty --oneline * 显示过去5次提交
$ git log --stat * 显示commit历史,以及每次commit发生变更的文件
--------------------------------------------------------------------------------
$ git reflog * 显示当前分支的最近几次提交
$ git show [commit] * 显示某次提交的元数据和内容变化
$ git show --name-only [commit] * 显示某次提交发生变化的文件
$ git remote show [remote] * 显示某个远程仓库的信息
--------------------------------------------------------------------------------
# 1.查看已修改,未暂存的内容 2.查看已暂存,未提交的内容 3.查看已提交,未推送的差异
# 工作区内容 暂存区内容 本地仓库内容
工作区 暂存区 本地仓库 远程仓库
\ / \ / \ /
\ / \ / \ /
1.$ git diff 2.$ git diff --cache 3.$ git diff origin/master master
四、其他
# 远程仓库拉取/更新到本地仓库
$ git checkout dev * 切换分支到dev
$ git pull origin master * 拉取远端origin/master分支并合并到当前分支
$ git pull origin develop * 拉取远端origin/develop分支并合并到当前分支
--------------------------------------------------------------------------------
$ git remote -v * 查看当前远程的版本
$ git fetch origin master * 从远程获取最新版本到本地
$ git log -p master.. origin/master * 比较本地的仓库和远程参考的区别
$ git merge origin/master * 远程的和本地的合并
--------------------------------------------------------------------------------
# 清除未追踪文件
$ git clean -nf * 查看未追踪untranck文件
$ git clean -f <file> * 清除指定文件
# 回退所有内容到上一个版本,或指定回退文件
$ git reset HEAD^ <file>
# 将本地的状态回退到和远程的一样
$ git reset –hard origin/master
# 回退到某个版本
$ git reset 057d
--------------------------------------------------------------------------------
# 版本分支
$ git branch
$ git branch -r * 查看远程分支
$ git branch -a * 查看本地分支和远程分支
$ git checkout [branch name] * 切换分支
# 分支创建,推送到远程仓库
$ git checkout -b [branch name] * 创建加切换分支
$ git branch [branch name] * 创建本地新分支
$ git checkout [branch name] * 切换分支
$ git push origin [branch name] * 推送新分支到远程仓库
$ git branch -d [branch name] * 删除本基地分支
$ git push origin :[branch name] * 删除远程分支
网友评论