Git系列:入门必备指令详解

Git系列:入门必备指令详解

    • 前言
    • 总览
    • 高频指令
    • 小结
    • 学习资料

Git系列博客:

  1. Git系列:GitHub建仓及远端同步步骤总结,link
  2. Git系列:入门必备指令详解,link
  3. Git系列:常用操作一指禅,link
  4. Git系列:常见指令辨析,link
  5. Git系列:常见报错处理,link

前言


版本管理中,Git与VSC、SVN技术区别?

  • 相同点
    • 都是版本控制系统,江湖外号有:VCS (Version Control System)、SCM (Source Code Management) 、RCS (Revision Control System)
  • 集中式:每步操作都要跟服务器打交道,安全性差
    • CVS(Concurrent Versions System)[3]诞生于1985年,是由荷兰阿姆斯特丹VU大学的Dick Grune教授实现的。
    • SVN,Subversion,后来的集中式版本控制技术集大成者
  • 分布式:主体在本地管理,按需与远端同步
    • Git,Git的发明者,Linus Torvalds,对其定义:
      • Global Infomation Tracker
      • Get的变形
      • 参考源:link1,link2

总览


常用指令使用流程如下图:

Git系列:入门必备指令详解_第1张图片

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:版本库或本地仓库
  • remote repository:远程仓库

——引用自:《菜鸟教程之Git操作》

高频指令


常见必备指令操作:

  • git clone
  • git add
  • git commit
  • git pull
  • git push
  • git branch
  • git checkout
  • git status
  • git diff

注意,指令举例中[]里表示需自行修改的内容,实际应用时不用带方括号[]

git clone

  • 功能:克隆远端服务器的版本库到本地
  • 指令1:git clone [ssh/https]
  • 释义:克隆代码仓到本地,可用ssh地址或https地址
  • 指令2:git clone [ssh/https] -b [branch_name]
  • 释义:克隆远端仓到本地,并切换到分支branch_name
    • -b为branch的缩写
    • branch_name可替换为相应分支名,如master/dev

git add

  • 功能:提交工作区内容到暂存区,本地操作,index跟踪(暂存区,相当于修改记录保存)
  • 指令1:git add .
  • 释义:将工作区所有代码修改提交到暂存区
    • 工作区,为本地直接可见的文件
    • 暂存区,.git目录下的内容,主要为目录索引,不直接可见
  • 指令2:git add [file_name]
  • 释义:将工作区特定文件的代码修改提交到暂存区
    • 实例如,git add main.c

git commit

  • 功能:提交暂存区内容到本地版本库,本地操作,文本添加到版本库(一次性打包提交本地所有修改到版本库中),commit必须在add后才有效
  • 指令1:git commit -m [comment]
  • 释义:将工作区所有代码修改提交到暂存区
    • -m为注释内容mark
    • 实例比如,git commit -m "init version"
  • 指令2:git commit --amend
  • 释义:强制在上一次commitid中提交新的暂存区内容
    • 将本地新的修改从暂存区添加到版本库中
    • 可修改上一次的commitid注释

git pull

  • 功能:拉取远端仓库代码并与本地版本库合并
  • 指令1:git pull或者git pull [origin]
  • 释义:将远端origin的所有分支拉取并合并到本地
    • git pull默认将远端主机origin相关代码拉到本地
    • origin可改为其他远程主机名,拉到本地并合并
  • 指令2:git pull origin master:dev
  • 释义:将远端origin的master分支拉取并合并到本地dev分支
    • 若master后面省略,即表示将远端master合并到当前分支,如git pull origin master

git push

  • 功能:推送本地版本库到远端仓库代码并合并,远端操作,推送到服务器上
  • 指令1:git push <远程主机名origin> <本地分支名master>:<远程分支名dev>
  • 释义:将本地分支dev推送到远程主机origin的远程分支master
    • 实例如,git push origin master:dev
    • 若本地分支名与远程分支名相同,可省略:及以后的内容
    • 如:git push origin master
  • 指令2:git push -f <远程主机名origin> <本地分支名master>
    • 示例如git push -f private br_ft,强制将本地版本库推送到远端private主机的br_ft分支

git branch

  • 功能:创建、切换、查看相应分支
  • 指令1:git branch
  • 释义:查看当前所处分支及本地分支名
    • 如加指令:git branch -a,查看包含远端的所有分支
  • 指令2:git branch [branch_name]
  • 释义:创建并切换到相应分支branch_name
    • 若已存在某分支,则需要用checkout指令来切换

git checkout

  • 功能:切换分支
  • 指令1:git checkout [branch_name]
  • 释义:切换分支到branch_name
  • 指令2:git checkout -b [branch_name] origin/[spec_branch_name]
  • 释义:在本地没有该分支时,自动新建分支branch_name,并拉取指定远端分支spec_branch_name作为本地基线
    • 若新建分支与远端分支同名,以上指令等价于,git checkout [branch_name]
  • 进阶了解
    • checkout详解,link
    • checkout简明解释,link

git diff

  • 功能:显示暂存区和工作区的文件差异
  • 指令1:git diff
  • 释义:查看还未添加到暂存区的本地文件修改
    • 之后加参数--stat,如指令:git diff --stat ,查看新增代码修改行数及相关改动文件
    • 要查看add和commit后的文件版本差异,需要用git log来查看
  • 指令2:git diff [file_name]
  • 释义:查看指定文件的前后修改差异

git status

  • 指令1:git status
  • 释义:查看上次commit提交后文件的修改,查看add后本地修改,与本地交互
    • 之后加参数-s,如指令:git status -s ,获得简短输出结果,s表示short

git log

  • 功能:查看commit日志,与远端的交互
  • 指令1:git log
  • 释义:查看上次commit历史log及commitID、注释
    • 添加参数--stat,如指令:git log --stat
    • 可查看各提交版本修改了哪些文件、及新增和删除的代码行数

小结


Git全流程操作图解:
Git系列:入门必备指令详解_第2张图片

原文图片链接:link

学习资料


Git入门:

  1. Git基本及常用命令,link
  2. GitHub官方Git学习文档,link
  3. 菜鸟教程:Git入门,link
  4. Tutorial:Learn Git ,link
  5. Git简明在线手册,link

Git进阶:

  1. 深入理解Git - 一切皆commit,link

Git实践:

  1. Git能力在线通关验证:link

你可能感兴趣的:(效率工具,git,github)