Git操作命令清单

Git 操作命令清单

专用名词的译名

  • Workspace 工作区
  • Indes/Stage 暂存区
  • Local Repository 仓库区或本地仓库
  • Remote Repository 远程仓库

一、新建代码库

# 在当前目录新建一个Git代码库
$ git init
# 新建一个目录,将其初始化为Git代码库
$ git init [project-name]
# 下载一个项目和它的整个代码历史
$ git clone [url]  *

二、代码提交/回退操作

1' 文件在工作区内修改
# 放弃工作区的修改,即把修改的文件回退到初始状态
# modified --> origin 文件位置 : 始终在工作区
$ git checkout --  
$ git checkout .
--------------------------------------------------------------------------------
2' 文件添加到暂存区
# modified --> staged 文件位置 : 工作区 --> 暂存区
$ git add .  
$ git add 
# staged --> modified 文件位置 : 暂存区 --> 工作区
$ git reset         * 对于已经被 Git 追踪的文件
$ git reset HEAD    * 对于从来没有被 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        * 清除指定文件
# 回退所有内容到上一个版本,或指定回退文件
$ git reset HEAD^ 
# 将本地的状态回退到和远程的一样  
$ 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]   * 删除远程分支

你可能感兴趣的:(Git操作命令清单)