安装 git
windows 客户端
好用的vscode代码编辑器内置 git 管理。
Cli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# 创建版本库
git init
# 当前目录所有文件添加到仓库
git add .
# 提交
git commit -m "xxxx"
# 版本回退
git log # 查看版本hash
git reset --hard {loghash}
git push -f # 远程仓库回退
# 同步远端仓库
git fetch
# 同步并合并本地仓库
git pull
# 同步本地关联的主分支
git pull origin master
# 拉取远程分支文件或者整个文件夹,替换本地文件
git checkout origin/master {filePath}
# 未add的文件修改还原
git checkout -- {fielPath}
# 已经add文件还原 然后接着上面操作
git reset HEAD {filePath}
# 添加远程仓库
git remote add origin http://xxx.git
# 推送本地仓库 (远程和本地master关联起来)
git push -u origin master
# 当前HEAD下新建分支
git checkout -b {name}
# 合并name分支到当前分支,当前分支HEAD指向name,更新当前分支。
git merge {name}
# 查看分支关联
git branch -vv
# 删除远程分支
git branch -r # 查看远程分支
git branch -r -d origin/branch-name
git push origin :branch-name
# 打当前提交标签 or 某次提交的标签
git tag v1.0 {commit-hash}
# 查看标签
git tag
# 删除标签
git tag -d {tag-name}
# 标签推送远端
git push --tag
# 暂存便于切换分支
git stash
# 暂存释放
git stash pop
# 干净整洁提交记录
git rebase # 整理本地太多合并记录
# 最近的 4 次提交纪录 打开vi界面 按下i键修改
# p(pick)使用这次提交,s(squash)这些提交合并在一起
# 按下esc :wq 保存更改
git rebase -i HEAD~4
# 到commit-hash 这次的提交合并
git rebase -i {commit-hash}
# rebase完成
git rebase --continue
|
优化提交格式
推荐使用gitmoji优化提交信息格式。cli 工具使用(需要 nodejs 环境):
1
2
3
4
5
|
# 安装gitmoji-cli
npm i -g gitmoji-cli
# 当前目录加入commit钩子
# git commit 时候选择提交内容
gitmoji -i
|
多人协作工作模式
- 首先,可以试图用
git push origin <branch-name>
推送自己的修改;
- 如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并;
- 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用
git push origin <branch-name>
推送就能成功!
如果 git pull
提示 no tracking information
,则说明本地分支和远程分支的链接关系没有创建,用命令 git branch --set-upstream-to <branch-name> origin/<branch-name>
。
GitHub 参与开源项目流程
fork 远程仓库
1
2
3
4
5
6
7
8
|
# 克隆到本地自己的fork的仓库
git clone http://yourself.git
# 建立远程开源项目链接
git remote add upstream http://opensource.git
# 从远程开源项目更新
git fecth upstream
# 合并远程主分支更新本地仓库代码
git merge upstream/master
|