Git常用命令速查

https://www.liaoxuefeng.com/wiki/896043488029600 廖雪峰的git教程

一、安装

  • git --version:查看git版本
  • git config --global XXXX:全局配置

二、本地文件管理

  • 三个区域:工作区 —> 暂存区(stage) —> 版本库

image

初始化一个本地仓库

  • mkdir XXX:创建XXX文件夹
  • git init:将该文件夹初始化为git仓库
    Initialized empty Git repository in /Users/michael/learngit/.git/
    

添加

  • git add 工作区 添加指定文件到 暂存区

    • git add .:添加所有文件
  • git commit -m 暂存区 提交至 版本库

查看修改状态

  • git status:查看当前项目修改状态

查看commit记录

  • git log:查看commit记录
    • git log --pretty=oneline:精简到一行

查看命令记录

  • git reflog:查看每次的命令

(工作区)版本回退

  • git reset --hard 工作区 回退到 版本库 中某个版本
    • HEAD:当前版本的指针
    • git reset --hard HEAD^:回退到上一个版本
    • git reset --hard HEAD^^:回退到上上个版本

丢弃暂存区/工作区的修改

  • git reset HEAD :将 暂存区 文件回退到 工作区 (unstage)

  • git checkout -- file:丢弃 工作区 的 “修改(改动/删除等操作)”

    • 回到最近一次add(在文件进入暂存区后修改)或commit(在文件未进入暂存区前修改)的状态

删除文件

  • git rm :删除文件
    • 删除完后应重新commit

暂存工作区

  • git stash:暂存工作区内容(压栈)
  • git stash list:查看stash栈的记录
  • git stash pop:恢复暂存的内容到工作区,同时删除stash记录(弹栈),等价于
    • (1)git stash apply:恢复暂存的内容到工作区
    • (2)git stash drop:删除stash记录
    • git stash pop stash@{X}:取出并删除指定的stash

合并某次commit到当前分支

  • git cherry-pick :合并某次commit到当前分支

三、远程仓库

Tips:记得添加SSH key
  • git remote add origin XXXX:将当前本地仓库关联远程仓库

    • XXX 为远程仓库地址
    • git remote -v:查看远程库信息
  • git push origin branch-name:将 本地版本库 推送到 远程库 的某分支上

    • git push -u origin branch-name:第一次推送时使用 “-u” 参数关联本地当前分支与远程某分支
  • git clone XXX:克隆某个远程仓库到本地

  • git branch --set-upstream-to=origin/XXX YYY:将本地分支YYY与远程分支XXX关联

  • git pull:拉取远程仓库的最新commit(同时直接合并到工作区

    • git fetch:拉取远程仓库的最新commit到自己的版本库

四、分支管理

  • HEAD(当前版本)、master、dev均是指针

创建分支

  • git checkout -b <分支名>(从当前分支) 创建并切换到某分支,等价于

    • (1)git branch <分支名>:创建分支
    • (2)git checkout <分支名>git switch <分支名>:切换分支
  • git switch -c <分支名>(从当前分支) 创建并切换到某分支

查看分支

  • git branch:查看当前所有分支
    • 当前分支前有 *

合并分支

  • git merge <分支名>:合并指定分支到当前分支

  • git merge --no-ff <分支名>:合并指定分支到当前分支(禁用Fast Forword)

    • Fast Forword在没有冲突的情况下可能会直接移动指针,而不会在merge的时候生成一个commit记录,导致丢失分支信息

删除分支

  • git branch -d <分支名>:删除某个分支
    • -D 强制删除某个还没有被合并过的分支

合并分支冲突

  • 情景:git merge <分支名> 后出现冲突

    • 冲突文件会通过<<<<<<<<======>>>>>>> 来标记不同版本
  • 处理:手动处理冲突后重新提交

    • eg:git commit -m "conflict fixed"

你可能感兴趣的:(各类配置)