git操作笔记
命令顺序:
1、git add .
2、git commit -m[信息] 「注:出现了任何问题,一定要先commit」
3、git checkout -b [branchName]
4、git branch
5、git checkout [branchName]
6、git branch -d [branch]
7、git push
git状态
标记状态
modified
是文件已修改的意思【之前已经被add标记,但是add到暂存区,会显示modified】
untracked
未被追踪【之前没有被add标记,相当于创建了一个全新的文件】
staged
使用了add命令,等待提交
unstaged
使用了commit命令,完成提交
本地仓库的操作不需要网络
接下来的push就是连接远程仓库,需要网络
git常用命令及理解
分支
git branch
查看有哪些分支,以及当前分支
git checkout -b A
创建并切换到分支A
git checkout -d a
假设,你想删除本地 a 分支
git branch 查看本地分支,比如: a b 两个分支;
git checkout b 切换到非删除分支,因为你想删除 a, 这里切到 b分支;
执行 git branch -d a 即可;
同理:你想用命令删除远程分支:git push origin -d a;
git merge A
就是把A分支里面的文件并入到当前分支里面
标签
git tag
列出所有标签
git tag -a v1.0 -m 'my first version'
基于最新的commit,打标签
也可 git tag v1.0
git tag -d [tagname]
删除标签
1. 删除本地tag
git tag -d tag-name
2. 删除远程tag(如果已经push到了远程仓库)
git push origin :refs/tags/tag-name
git push --tags
因为之前我们只是在本地仓库创建了标签,所以还需要push到远程仓库,
并且这个不会被git push覆盖
克隆,push远程仓库
git clone -b v1.0
git clone --branch [tags标签] [git地址]
git clone -b v5.2.0 --depth=1 http://gitlab地址
-b 后面写上指定 版本标签 , 即 tag, 比如 v5.2.0
--depth 表示克隆深度, 1 表示只克隆最新的版本. 因为如果项目迭代的版本很多, 克隆会很慢
git push
添加远程仓库,push到远程仓库
git remote add origin https://gitee.com/jinyibu/microservices.git
git push -u origin "master"
版本
git reflog 或者 git log
可以查看之前提交的commit编号,方便版本回退
git reset --hard 0b19fe3
0b19fe3是commit编号,可以回到0b19fe3次commit时候的代码
其他
git stash git stash pop
如果当前项目没有完成,又不想提交commit,但是又必须去另一个分支工作,
可以git stash + git stash pop
git pull [url] [branch]
如果当前的本地仓库不是最新的,那么就需要拉取远程仓库的分支
git cherry-pick [branch1*] [branch1]
相当于在当前的分支下 重新建立一个分支链
「如下图,当前处于master分支
需求:重新形成一条分支,里面依次包含c3,c5,c7
作用:把c3,c5,c7的提交内容全部merge到master」
注意事项:
CONFLICT (content): Merge conflict in 1.txt
Automatic merge failed; fix conflicts and then commit the result.
冲突解决:在提交修改到本次仓库之后,先merge,然后再次 add 提交,手动解决冲突