一、ssh key下载代码
使用ssh-key去到gitlab下载代码代码替代https方式。
1、生成ssh-key
运行以下命令,一路回车
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa):
Created directory '/home/test/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
2、将ssh-key贴到gitlab
cat ~/.ssh/id_rsa.pub
1)拷贝结果输出
2 ) 登录gitlab--prfile settings--SSH keys--Add SSH Key--粘贴刚刚拷贝的
SSH公钥
二、分支
1、上传新分支
场景:需要基于master分支的最新提交拉出一个release-2.1分支
git push origin HEAD:release-2.1
## release-2.1为本次上传的新分支名称,其它不需要去改
2、下载分支
git clone ssh://git@gitlab.shishike.com:38401/test/123.git
##不加-b默认会下载master分支
git clone ssh://git@gitlab.shishike.com:38401/test/123.git -b release-2.1
##-b指定你本需要下载的分支
3、分支查询:
git branch -a ##查询本地和远程所有的分支
git branch -ar ##只查询远程所有分支
git branch ##只查询本地所有分支
git branch -avv ##查询分支对应关系和该分支最后一次提交
4、分支切换:
Git checkout master#切换到master分支
git checkout -b release-2.1 origin/release-2.1
##新建本地分支release-2.1同时并将远程分支origin/ release-2.1检出到本地的release-2.1分支上
5分支合并:
场景release2.1需要合并master的所有提交
1)git merge master
2) 执行git merge后,会弹出如下提示,直接:wq,退出即可
##生成一个合并提交的,master上合并过来的commit-id log
会在这条commit-id之后
3) git push ##上传刚刚后合至远程服务器
4) 如果还有其它人也在release-2.1分支上工作,git push可能会报错
这时需要执行:git pull -r,然后git push就能顺利push至远程服务器
6、只合并某条提交
场景:需要合并banchA中的某一提交到branchB
git checkout branchA
git log ##找到需要合并的提前,并粘贴commit id
git checkout branchB
git cherry-pick 185ebf2b4138944e8838bcaba159ab43947e7bac
git push
7、暂存提交
场景:经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。
问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令
git stash ##暂存提交
git stash list ##查看所有的暂存提交
git stash pop##重新应用储
三、标签(tag)
1、上传tag
git tag -a test1 -m "first tag"##先打一个test1的tag
git push origin test1 ##只将test1 tag上传至服务器
git push --tags ##上次本地所有的tag至服务器
2、查看标签信息:
git show test1
3、删除tag
git tag -d test1 ##这只是将本地的tag删除了
git push origin :refs/tags/test1 ##删除远程服务器上的tag
4、检出到tag
git checkout test1 -b test1 ##将tag检出到一个本地的test1分支
四、git log
1、获取最后一条commit信息
获取完整commit id(如:14123c8877e6ebdc220e205d92fc70feaf06dab1)
git rev-parse HEAD
获取short commit id(如:14123c8)
git rev-parse --short HEAD