idea 操作 git

https://www.cnblogs.com/javabg/p/8567790.html

git 安装

1
2
3
git config --global user.name "chen"
git config --global user.email "chenshihuababy@163.com"
git config --list 查看用户有没有配置成功

创建仓库

  • 主要命令
1
2
3
4
5
6
7
初始化版本库
git init
添加文件到版本库
git add
git commit
查看仓库状态
git status
1
2
3
4
5
6
7
8
pwd	显示当前在哪个目录下
mkdir demo2
cd demo2
git init
echo "git repo2" >> test.txt 管道追加,将输出的"git repo2"追加到test.txt文件
git add test.txt 添加这个文件
git commit -m "repo2 first commit" 提交文件,-m是添加描述
git status 查看仓库状态

工作流

image.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
第一天需求完成后:
git status 查看工作区哪些文件没提交
git add bash_demo.txt 添加到暂存区
git commit -m "bash first commit" 提交到本地仓库
临时修改需求后:
git add bash_demo.txt 添加到暂存区,先不提交,因为临时修改还没自测
第二天说这个需求先不用改了:
git reset HEAD bash_demo.txt 将暂存区的修改丢弃
#git checkout -- <file>指令是从先从暂存区中拉取版本还原,如果没有再到版本库中拉取还原
git checkout -- bash_demo.txt 拉取版本库代码还原
第二天的需求完成了:
git add bash_demo.txt
git commit -m "second commit"
此时又要求第二天的这个需求不用做了,此时需要回滚到上一次提交的时候:
git log 查看历史提交commit号
git reset --hard commit号 全部回滚到上一次提交的时候
突然又来一个变态需求说这整个需求不用做了,这时需要把本地仓库清干净:
git rm bash_demo.txt 清空本地文件
git commit -m "delete bash demo" 提交清空仓库

远程仓库

  • 首先在码云上创建远程仓库 demo
  • 创建 SSH Key:
1
2
ssh-keygen -t rsa -C "chenshihuababy@163.com"	生成key
进到.ssh/id_rsa.pub复制公钥到码云个人中心添加公钥
  • bash 命令行添加项目到远程仓库
1
2
3
4
5
6
7
bash进入项目工作目录
echo "README" >> README.md 创建README文件
git init 初始化git
git add README.MD 添加到暂存区
git commit -m "first commit" 提交到版本库(本地仓库)
git remote add origin git@gitee.com:chenshihuababy/demo.git 关联本地仓库与远程仓库
git push -u origin master -f 强制推送到远程仓库上

克隆仓库

  • bash 命令行方式
1
2
创建一个本机目录,默认clone项目包含项目名
git clone git@gitee.com:chenshihuababy/clone.git

标签管理

  • bash 命令行
1
2
3
4
5
git tag		查看所有标签
git tag name 创建标签
git tag -a name -m "comment" 指定提交信息
git tag -d name 删除标签
git push origin name 标签发布

分支管理

image.png

  • bash 命令行管理分支
1
2
3
4
5
6
7
8
9
假如正在master上开发,此时有一个新的需求要在master上做,但是master要做别的需求,那么就可以在matser上建一个分支:
git branch fenzhi_1 在当前版本上创建一个新的分支
git branch 查看分支,分支前面有*的是当前所在的分支
git checkout fenzhi_1 切换到fenzhi_1
在fenzhi_1开发新需求完了。。。
git checkout master 切换到master
git merge fenzhi_1 将fenzhi_1的代码合并到master
一段时间后又说fenzhi_1的需求没用了,那么就要删除fenzhi_1
git branch -d fenzhi_1 删除fenzhi_1

总结

image.png