参考这篇文章。本教程中所有操作均在Debian下进行,也可使用Ubuntu。
注意:请将[email protected]
替换为你的邮箱,将Your Name
替换为你的姓名。
sudo apt update
sudo apt install git
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
注意:请将[email protected]
替换为你的邮箱。
ssh-keygen -t rsa -b 4096 -C "[email protected]"
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
我们推荐使用4096位密钥。
注意:请将*0E76AD10B3B7C66F
*替换为你的gpg --list-secret-keys --keyid-format LONG
的输出中的内容(见下)。
gpg --full-generate-key
gpg --list-secret-keys --keyid-format LONG
gpg --armor --export 0E76AD10B3B7C66F
git config --global user.signingkey 0E76AD10B3B7C66F
git config --global commit.gpgsign true
gpg --list-secret-keys --keyid-format LONG
输出:
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
/home/alan-liang/.gnupg/pubring.kbx
-----------------------------------
sec rsa4096/0E76AD10B3B7C66F 2019-05-29 [SC] // 注意0E76AD10B3B7C66F
0388080D7996FC65483C52800E76AD10B3B7C66F
uid [ultimate] Alan-Liang (Alan Liang) <[email protected]>
ssb rsa4096/EF93B4028712D401 2019-05-29 [E]
mkdir hello-git
cd hello-git
git init
echo "Hello Git!" > README.md
git add .
git commit -m "Initial Commit"
git log
git branch feat-foo
git checkout feat-foo
echo "Feature!" > foo.txt
git add .
git commit -m "feat(foo): foo.txt"
git checkout master
git clone [email protected]:KEEER/guides.git
cd guides
请见Commit message 和 Change log 编写指南 - 阮一峰的网络日志
请使用feat-foo
或dev-alan-liang
形式命名Branch,其中foo为功能名,alan-liang为你的名字。
- master: 主分支。在一个成熟的产品里,master分支表示稳定版,而没有开发完的产品里表示当前开发进度。
- dev: 开发分支。若master表示稳定版,则dev表示当前开发进度。
在一个功能开发完毕之后需要merge到master分支里。具体操作如下。这个repo已经上传到KEEER Git。请自行创建repo并修改远程地址。
mkdir git-test
cd git-test
git init
echo "Test repo for Git" > README.md
git add README.md
git commit -m "Initial Commit"
git remote add origin [email protected]:KEEER/git-test.git
git push --set-upstream origin master
git branch feat-foo
git checkout feat-foo
echo "Feature" > foo.txt
git add foo.txt
git commit -m "feat(foo): initialize feature foo"
echo "Finished" >> foo.txt
git add foo.txt
git commit -m "feat(foo): finalize feature foo"
git push --set-upstream origin feat-foo
git checkout master
git merge --squash feat-foo
git commit -m "feat(foo): add feature foo"
git push
注意:这里使用了Squash merge。具体细节请参见这篇文章。
Command | 用途 | 示例 |
---|---|---|
git add |
添加文件到暂存区 | git add -A |
git commit |
添加提交 | git commit -m "fix: fix #1" |
git push |
推送提交到服务器 | git push -u origin master |
git branch |
添加分支(Branch) | git branch feat-foo |
git checkout |
切换分支 | git ckeckout master |
git merge |
合并分支 | git merge feat-foo |
Maintainer | Contributor(s) |
---|---|
Alan-Liang | Alan-Liang |