0%

Git简明教程

常用 Git 指令

基础设置:

  • 查看所有配置:git config -l

  • 查看系统配置:git config --system --listgit config --system -l

  • 查看用户配置:git config --global --list


  • 设置用户名和邮箱:git config --global user.name "你的用户名"

    git config --global user.email "你的邮箱地址"

  • 删除用户名和邮箱:git config --global --unset user.name

    git config --global --unset user.email


常规操作:

  • 查看所有文件状态:git status

  • 查看指定文件状态:git status [filename]

  • 查看日志:git log

  • 查看引用记录:git relog


  • 初始化(在当前目录下新建一个代码库):git init

  • 添加文件到暂存区:git add [文件名]

  • 添加工作区所有文件到暂存区:git add .

  • 提交更改:git commitgit commit -m "消息内容"

  • 推送到远程仓库:git pushgit push [远程仓库名称] [本地分支名称]:[远程分支名称]

  • 克隆仓库:git clone [URL]

  • 拉取远程变更:git pullgit pull [远程仓库名称] [远程分支名称]

  • 获取远程变更:git fetch [远程仓库名称]

    git fetch会获取最新的提交,但不会自动合并到当前的工作分支


分支管理:

  • 查看所有分支:git branch

  • 创建新的分支:git branch [new branchname]

  • 重命名分支:git branch -m [old branchname] [new branchname]

  • 删除分支:git branch -d [branchbname]

  • 切换分支:git checkout [branchname]git switch [branchname]

  • 合并分支:git merge [source branchname]

    请在目标分支执行git merge,使目标分支同步源分支的更改


  • 撤销修改:git checkout .

    回到最后一次提交的状态,撤销后续的修改。

  • 回退到某次提交:git checkout [commit-hash]

    你不再在任何特定的分支上,而是直接在一个特定的提交上。

    此时,你可以自由地查看这个提交的代码,进行实验性的修改,甚至创建新的提交。这些修改和提交不会影响任何分支,除非你创建一个新的分branch并将这些提交添加到那里。

  • 重置到某次提交:git reset --hard [commit-hash]

    reset会用永久地丢弃后续的提交历史。请确保不再需要之后的提交。


远程仓库:

  • 添加远程仓库:git remote add [远程仓库名称] [远程仓库URL]
  • 查看远程仓库:git remote -v
  • 删除远程仓库:git remote rm [远程仓库名称]

Git 原理

Git 是分布式版本控制。不同于本地版本控制集中式版本控制(如SVN),每个人都拥有全部的代码。所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。这样不会因为服务器损坏或者网络问题,造成不能工作的情况。(详见:狂神聊Git

Git 本地有三个工作区域,外加远程的git仓库,总共分为四个工作区域:

  • 工作目录 (Working Directory)
  • 暂存区 (Stage/Index)
  • 资源库 (Repository或Git Directory)
  • 远程的 git 仓库 (Remote Directory)

relationship