参考资料

找一份好的资料,以下文档比较权威,可以借助翻译软件。

git 官方文档

版本管理概念

即代码管理,记录每次代码提交相关信息,包括作者、时间、修改内容介绍。
对于初学者,代码只有几十行可能不需要管理。当代码量很大,多人一起工作,企业工程管理时,代码管理特别重要,如果没有版本管理,可能会出现以下常见问题:

  1. 代码丢失
  2. 不知道何时修改的代码
  3. 多人合作时代码合并困难
  4. 时间太长久,比如1年后,代码不知所踪
  5. 审核代码相当困难

git 重要概念

git

  • Workspace:工作区
  • Index/Stage:暂存区,也叫索引
  • Repository:本地仓库
  • Remote:远程仓库

理论上代码提交本地仓后是不会掉的,即由git 数据库管理,除非.git 目录损坏。

本地代码管理

观看视频更直观
大多数开发者只管理本地仓、上代码、下载代码,所以这里重点介绍本地代码管理。一般公司有专人管理远程仓,即scm人员。

  • 配制git
    本地git 用户名和邮箱配置
    git config –global user.name “user-name”
    git config –global user.email “user-email@126.com

  • 上代码、下载代码
    这里可以采用github、gitee 作为服务器(注册一个账号即可),创建一个仓,本地即可下载或上传代码。
    下载: git clone git@gitee.com:five2hill/trainee.git
    上传: git push -u origin “master”

  • 本地管理
    git 是分布式管理系统,没有服务器照样管理本地代码,这里在本地新建仓并管理代码。

    • git init repo-name, 新建一个repo-name仓,会在本地目录下多出一个repo-name目录,里面有.git 目录(ls -a),即为git的数据库。
    • 新建一个 main.c 文件,此时git status 查看当前状态处理unstage,说明新建文件未管理
    • git add main.c ,将main.c 加入git 管理,git status 查看main.c 处于stage状态
    • git commit ,将stage状态下的代码提交到本地仓中,并录入提交信息,一般推荐如下格式
      Submit subject
      — 空行 —
      submit details
    • git log 查看提交历史记录,即可看到自己的提交
    • git show 查看上一次提交的修改
    • git checkout file-name , 此指令可以将Unstage 状态的代码丢掉,即修改的内容会丢失。
    • git reset file-name, 同上一条指令效果一样,将stage状态改变为unstage状态。
    • git reset –hard ,此指令将回退到未提交的代码。
    • git branch , 查看所有分支
    • git checkout -b new-branch-name, 新建一个分支,分支之前独立操作,但源码还是在同一目录。
    • git tag , 查看当前tag, tag为当前提前取个名字
    • git tag tag-name, 在当前提交版本上新建一个tag,名为tag-name, 比如版本发布时取个版本号名。
    • git reflog ,查看操作记录