学会使用github

    1. 每个人在https://github.com/上注册账号,上传一些自己的代码或者文档。学会checkin checkout,clone,fetch,pull 等命令。

    Git 基础命令

    • git init 创建一个新的仓库,并且开始对当前目录进行追踪。会在当前文件夹下创建.git 目录。包含了当前仓库的信息。
      • —bare 在当前目录或者目标目录创建裸库(只包含版本信息,不包含项目文件),可以用来分享本地版本库的信息。
    • git clone 创建一个远程仓库的拷贝,包含项目文件,历史,还有分支。
      • —bare 只拷贝项目的版本信息,不包含项目文件
      • —mirror 和—bare 功能类似,但是会映射本地到远程分支
      • —branch 只下载某一个分支
      • —depth 用来指定克隆深度,--depth 1 表示只包含最近一次 commit 信息。
      • —shallow-since 只拷贝指定指定时间后的信息 --shallow-since="2020-01-22 00:00:00"
      • —shallow-exclude 不包含指定的分支或tag,可以多次添加
    • git add 添加文件或修改到仓库
      • -p 添加部分指定的修改
      • -e 显示diff文件,并且用户可以修改文件信息。
    • git commit 提交修改内容并保存历史信息。

      • -a 自动提交所有修改和删除的文件,新添加的文件会被忽略
      • -C 使用之前的log和作者信息提交改变,历史信息不会。
      • -c 和 -C 类似,但是可以添加log信息。
      • -p 提交部分指定的修改
      • —fixup
      • —squash
      • —reset-author 当使用-C/-c 或者 cherry-pick 时改变作者信息
      • —no-edit 便是提交修改,但是不添加log信息,git commit --amend --no-edit 提交代码,使用上一次的提交的信息,可以用于修改补充提交代码。
      • —amend 提交代码到上一次的修改中 和 git commit -c ORIG_HEAD 类似 You should understand the implications of rewriting history if you amend a commit that has already been published. (See the “RECOVERING FROM UPSTREAM

        REBASE” section in git-rebase(1).)

    • git status 查看当前文档的状态。

      • —branch 显示某一个分支的信息
    • git branch
      • —delete 删除某个分支
      • —move 重命名分支
      • —remotes 显示远程分支
      • —all 显示所有的远程分支和本地分支
      • —list 展示所有的分支
    • git merge 把几个分支合并到一起
      • —ff 不产生一个新的commit,这是默认值
      • —no-ff 创建一个merge commit ,可以查看到历史合并
      • —abort 中止当前冲突解决进程,并尝试重建预合并状态。(重新再看一遍)
      • —continue 在git合并由于冲突而停止后,可以通过运行git merge—continue来结束合并
    • git stash 保存当前的修改内容
      • list 查看保存的内容
      • apply 恢复,但是不删除保存的内容
      • pop 恢复,同时删除保存的内容
      • drop 删除保存的内容
    • git pull 从仓库或其他的分支拉取并整合代码到本地分支 等于 git fetch + git merge
      • —rebase git fetch + git rebase
    • git push 更新远端仓库
      • —all 推送所有分支
      • —tags 将tag也推送过去
      • —force 强制推送
      • -u, —set-upstream 设置 upstream
    • git rebase
    • git log 查看提交历史
      • —graph 查看分支合并图
      • —pretty=online
      • —abbrev-commit
    • git show
    • git checkout
      • -b 创建并切换到分支
      • — file 切换到暂存区或版本库
    • git switch
    • git diff 比较工作区和暂存区的区别
      • —cached 比较暂存区和版本库的区别
    • git reset
    • git reflog 查看命令历史
    • git rm 从版本库中删除文件
    • git remote 查看远程仓库信息
      • add origin
      • set-url origin

    创建文件夹 git-study,初始化本地仓库

    1. chaos-MacBook-Pro:myspace chao$ mkdir git-study && cd git-study
    2. chaos-MacBook-Pro:git-study chao$ git init
    3. Initialized empty Git repository in /Users/chao/myspace/git-study/.git/

    由于本地没有文件

    进入https://github.com/new,创建仓库 git-study
    image.png

    1. 理解分支

    什么是主分支,一个人的项目和多个人合作的项目会有很大区别,一个人的项目搞搞主分支就行了,但是多人合作的项目会有很大区别,特别是同一个部分可能有两个人一起开发。

    1. 理解Tag

    一个大的项目可能有多人合作开发,肯定会在一个合适的时候,大家都开发结束了,这个时候需要有项目管理人员做一个Tag(往往一个Tag 对应一个版本号),然后测试人员就取这个tag下的代码,其他人可以继续在主分支提交代码。测试人员测试OK后,运维人员就需要从这个tag上取代码下来,到线上环境去跑。

    因此如果不做开发,分支用到的机会很少,但是Tag用到的机会几乎是百分之百的。