git

文档状态:编辑中....

工程的经验来源于场景和思索实践.


Table of Contents

驱动

最重要的是要理解无论是stage还是commit都是对modify的累积合并.

场景

1. 对本地代码仓库化
    git init .
2. 在远端创建仓库,使用网页创建即可.
3. 设置本地仓库的remote
   git remote add origin https://****
4. 将本地仓库与远程仓库合并
    git pull origin master
5. 提交本地仓库到远程分支
    git add .
    git commit -m "*****"
    git push -u origin master
[背景知识]
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。

$ git pull <远程主机名> <远程分支名>:<本地分支名>
比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。

$ git pull origin next:master
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。

$ git pull origin next

常用

git tag很不错
  pics git:(master) git tag <name>(针对当前分支的最新committag)

[a]. 如果想对历史commit打tag
    1. git log --pretty=oneline --abbrev-commit(查找commit hash)
    2. git tag v0.1 <hash value>
[b]. 查看tag
     git tag

[c]. 可以用git show <tagname>查看标签信息:

[d]. 还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
    $ git tag -a v0.1 -m "version 0.1 released" 3628164
[e]. 通过-s用私钥签名一个标签:
    $ git tag -s v0.2 -m "signed version 0.2 released" fec145a
    签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错.

ref

[1]. git tag

FANQ

最佳实践

  1. 分支实践

  2. 配置git

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

video