一、查看命令

  • git config --list 显示当前git配置
  • git status 查看当前仓库状态
  • git diff <file> 查看修改内容
  • git log 查看历史记录
    • git log --pretty=online 查看版本
  • git reflog 查看所有版本的序列
  • git brach 查看分支
  • git remote 查看远程仓库
    • git remote -v 查看远程仓库地址

二、本地仓库与远程仓库

  • git init当前目录初始化为git版本库
  • git add 添加
    • git add <路径> 将指定文件的修改添加到暂存区
    • git add . 将所有文件的修改添加到暂存区,不包括删除
    • git add -A . 将所有文件的修改添加到暂存区
  • git commit -m "message" 将暂存区的所有内容提交到当前分支

  • git remote add <远程库> 关联远程库
  • git remote -v 查看远程库信息
  • git push 推送
    • git push -u origin <分支名> 第一次推送分支的所有内容
    • git push origin <分支名/标签名> 推送本地分支/标签到远程库
  • git clone 将远程仓库克隆到本地仓库,支持多种协议

    ssh—安全,git—快,http/https协议—易架设,穿透好

  • git pull 将远程仓库更新到本地仓库

三、版本修改

  • git checkout -- <file> 撤销工作区的修改,实际是版本库里的版本替换工作区的版本(尚未执行add操作)
  • git reset 回退
    • git reset HEAD <file> 撤销暂存区的修改,回退到工作区(尚未执行commit操作)
    • git reset --hard HEAD^ 回退到上一个版本
    • git reset --hard <版本号> 回退到指定版本
  • git rm <路径> 删除版本库中的文件 (执行此命令后需执行commit 操作)

  • HEAD 当前分支 当前版本的指针
  • git log 查看历史记录
  • git log --pretty=oneline 查看版本号
  • git reflog 查看版本的变更记录

四、分支管理

  • git branch <分支名> 创建分支
  • git checkout <分支名> 切换分支
  • git checkout -b <分支名> 创建+切换分支
  • git merge <分支名> 合并分支到当前分支,fast forward合并
  • git merge --no-ff -m "merge with no-ff" <分支名> 普通模式合并
  • git branch -d <分支名> 删除分支
  • git branch -D <分支名> 删除一个未被合并的分支

  • git stash 保留并隐藏工作现场
  • git stash apply [stash号] 恢复指定stash号的工作现场
  • git stash drop 删除stash内容
  • git stash pop 恢复工作现场,并删除stash内容

  • git branch 查看分支
  • git log --graph 查看分支合并图
  • git log --graph --pretty=oneline --abbrev-commit
  • git stash list 查看stash内容

  • 本地新建的分支如果不推送到远程,对其他人就是不可见的。
  • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交。
  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致。
  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
  • rebase操作可以把本地未push的分叉提交历史整理成直线;
  • rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。

五、标签管理

  • git tag <tagname> 用于新建一个标签,默认为HEAD,也可以指定一个commit id
    • git tag -a <tagname> -m "message" 指定标签信息
    • git tag 可以查看所有标签
    • git push origin <tagname> 可以推送一个本地标签
    • git push origin --tags 推送全部未推送过的本地标签
    • git tag -d <tagname> 删除一个本地标签
    • git push origin :refs/tags/<tagname> 可以删除一个远程标签