Git项目管理

# Git项目管理

工作区 --> 缓存区 --> 本地仓库区 --> 远端仓库

Git授权SSH

大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。在 Github 或者 Gitlab 上提交代码,我们需要把 SSH 公钥复制托管到Github的

personal setting -> ssh keys

生成 SSH-Key 方法

# 进入ssh目录
cd ~/.ssh

# 生成ssh公私钥
ssh-keygen

# 复制ssh公钥
cat ~/.ssh/id_rsa.pub   
1
2
3
4
5
6
7
8

# 仓库基本操作

# 在当前目录新建一个Git代码库
git init                        

# 新建一个目录,将其初始化为Git代码库
git init <project-name>         

# clone git仓库
git clone <git-hub-url>  

# [高阶用法] clone git仓库并且制定分支
git clone <url> -b <branch>     
1
2
3
4
5
6
7
8
9
10
11

# 修改用户信息

# 配置信息列表
git config --list         

# 设置用户名
git config --global user.name "xxx"   

# 设置邮箱
git config --global user.email `xxx`  
1
2
3
4
5
6
7
8

# 设置不同的仓库源

# 查看帮助
git remote --help                   

# 查看不同源
git remote  

# 添加不同地址的源,并取一个别名
git remote add [name] [url]    

# 删除一个源
git remote remove [name] 
1
2
3
4
5
6
7
8
9
10
11

# 操作一次完整提交流程

# 修改readme文件,文件在工作区
vi readme.md                

# 文件进入缓存区,缓存区的文件可以被checkout移除到工作区
git add readme.md  

# 文件进入提交分支,但还是在本地
git commit 'add readme'  

# 提交分支 push 到远端分支
git push origin master      
1
2
3
4
5
6
7
8
9
10
11

git pull : git fetch + git merge

git pull --rebase: git fetch + git rebase

# 如何删除远端多余分支
# 大多数情况remote_name为origin
git push -delete <remote_name> <branchName> 
1
2
3

# Git提交信息检查

# 查看当前工作区改动点
git diff                               

# 提交hash1和hash2的差异
git diff commit_hash1 commit_hash2 

# 分支a和b的差异
git diff branch_a branch_b   

# 当前改动文件
git status     

# 查看提交历史
git log                

# 提交历史缩减一行查看,主要是提交Hash值
git log --pretty=oneline             
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 多人协同开发

revert 和 reset区别

场景: 有些时候开发者需要退回到某次正确的提交记录,有些时候开发者的commit错误了,这时候可以使用 git revert 和 git reset。

git revert: 撤销某次操作,此次操作之前的commit都会被保留。

git reset : 撤销某次提交,但是此次之后的修改都会被退回到暂存区。

# 强制回退到某次提交,且需要强制提交
git reset ——hard commit_hash 
git push origin master --force 

# 回退到某次提交,保存提交commit记录, 重新commit
git revert commit_hash
git add .
git commit -m "revert"
git push origin master
1
2
3
4
5
6
7
8
9

# 创建Tag,如何以某个Tag创建分支

有时我们代码已经发布很长时间才发现了一个Bug,同时当前开发分支又有需求在开发,如何以之前发布版本的节点开分支修复问题,这样就可以使用 Tag 创建分支。

# 创建tag
# 创建标注标签
git tag -a daily/0.0.1 -m "add develop file" 

# 简单创建tag
git tag daily/0.0.1                                 

# 分享tag到远端
git push origin [tagname]
git push origin --tags 

# 如何已某个tag创建分支
git checkout -b <newbranch> <tagname>
1
2
3
4
5
6
7
8
9
10
11
12
13
上次更新: 2022/7/8 下午4:56:35