当前位置:   article > 正文

拉取gitlab代码_gitlab怎么看别人分享的源码

gitlab怎么看别人分享的源码

目录

目录

前言

一、起因

1.场景一:git clone

2.场景二:git clone指定分支的代码

3.场景三:git branch

4.场景四:git checkout

5.场景五:提交代码

6.场景六:git fetch/pull

7.场景七:git log

8.场景八:git reset 

9.场景九:go get

后续待更新

总结


前言

今天算是第一次使用gitlab,之前也这么使用过GitHub,但是时间太久了忘记怎么配置了,所以在此做个笔记。

另外记录下工作中使用git的命令和场景。

一、起因

1.场景一:git clone

有一天,失业的你找到了一份程序员工作!!你入职了,你的组长、主管给了你一个仓库地址,然你去拉取远程仓库的代码。

你安装了git,输入:

  1. git clone https://xxxhub.com/xxx/项目名.git
  2. 或者
  3. git clone git@xxxhub.com:xxx/项目名.git

突然报错:Permission denied (publickey). fatal: Could not read from remote repository.

一下子给你干懵了,这是啥!

其实这是因为你的权限不够,没有设置ssl密钥的问题,这时候你只需要在git上按照你使用的github或者gitlab的方法,输入:

ssh-keygen -t rsa -C "你的GitHub/gitlab邮箱"

然后一路回车就可以生成密钥了,当他出现类似于图案的东西就说明生成密钥成功了,然后密钥的位置应该是在/C/users/administrator/.ssh/id_rsa,然后再当前目录下使用git bash命令:

cat id_rsa.pub

就可以查看你的密钥了,然后在gitlab或者GitHub上添加你的ssl密钥,并且命名。

最后再使用git命令git clone 你的项目地址就可以成功拉取到代码了!!

2.场景二:git clone指定分支的代码

你是一个新来的,你的领导认为你太菜了,决定给你一个项目的过期版本玩玩,于是让你拉取项目的某一个分支,一般的代码仓库都会有多个分支,master分支一般保存着稳定版的项目代码,所以你的又开始了git clone,可是敲完git clone你懵了,你沉默了,后面写些啥?

想要拉取指定分支的代码,需要如下命令:

git clone -b demo git@xxxhub.com:xxx/项目名.git

这里的demo就是分支名,-b 加上分支名就可以拉取这个分支的代码了!

3.场景三:git branch

有一天你想提交代码,需要查看有哪些分支,自己当前在哪个分支下,这时候就可以使用到这个命令了:

  1. git branch // 列出本地分支
  2. git branch -a // 列出所有分支,包括远程分支
  3. git branch -r // 列出所有远程分支
  4. git branch demo // 创建一个新的分支,分支名为demo
  5. git branch -d demo // 删除demo分支

当你列出本地分支或者所有分支后,在分支前面有一个 * 号就说明你处于当前分支上。

当然可能还有一个问题,当你带上参数 -a 或者 -r 的时候发现没法退出,没法输入下一个命令,这时候只需要按下 Q 键即可,当然这个是在Windows环境下的,至于Linux有待后续实验。

4.场景四:git checkout

当你拉取了一个分支,写完代码后,准备要提交,这时候你的领导告诉你,这个分支是给菜鸟练习的,只能拉取,不能提交,让你新建一个分支进行提交,你通过git branch demo创建了一个demo分支,然后进行提交,随后你就被打了!

虽然创建了一个新的分支,但是你没有切换分支,提交代码还是提交到之前的分支上。这时候就需要使用这个命令进行切换分支:

git checkout demo    // 切换到demo分支

这时候你再进行提交,代码就提交到新创建的分支上了。

5.场景五:提交代码

完成每天的代码任务后,需要将代码推送到远程仓库,这时候可以使用如下命令把你的代码提交到远程仓库:

  1. git add . // 将目前文件夹下所有的文件添加至暂存区
  2. git add ./student/main.go // 指定文件添加到暂存区
  3. git commit -m "提交了一段很牛的代码" // 对你刚才添加到暂存区的代码做一个描述
  4. git push //将暂存区的代码推送到远程仓库的分支上

 当然,如果你没有切换分支的话,需要在git push之前切换分支,当然也可以通过以下命令推送至指定分支:

git push origin demo    // 推送代码到远程仓库的demo分支上

 提交完毕下班!!!!!!

6.场景六:git fetch/pull

 git fetch 和git pull两个命令有点相似,都是获取远程仓库的最新代码,但是git pull会自动合并本地代码和远程仓库的最新代码。

现在有个场景,就是和你一起入职的还有一个菜鸟,你们俩拉取的是同一个仓库的同一个分支的代码,你俩一人负责一个功能,然后你们都需要提交到同一个分支上,这时候你可能会发现提交不了了!

这是因为另一个菜鸟他先提交了代码,远程仓库发生了变化,本地代码与远程仓库代码版本不一致导致无法提交代码,这时候就需要使用以下命令:

  1. git pull
  2. git pull origin demo:demo1 // 获取远程仓库的demo分支与本地的demo1分支合并
  3. git pull origin demo // 获取远程仓库的demo分支与当前分支合并

这时候你本地的代码会更新成最新状态,再次提交代码就没有问题了。

7.场景七:git log

有一天你想看看自己提交了多少次代码,版本是什么,就可以使用git log 进行查看:

git log

 

8.场景八:git reset 

你入职好几天,代码也迭代了好几次,这时候你的组长、主管认为你的最新代码写的不如上一个版本的代码,为了和你讲清楚到底是哪里不好,让你调出上个版本的代码。

你想:我都提交了,已经把上个版本的代码覆盖了,还怎么调出来?

首先你需要通过场景七中的命令查看你代码的历史版本,然后通过以下命令就可以进行回退了:

git reset --hard [commit版本号]     //将代码回退到这个版本

将代码回退到某个历史版本以后,如果直接在这个历史版本修改代码再push会出现“push of current branch was rejected remote changes need to be merged before pushing”的问题,正确做法应该是在回滚的历史版本中,先git pull拉取远程仓库的最新代码,然后在这个最新版本中修改添加你的代码,这时候push就没问题了。

9.场景九:go get

通常一个项目会有多个系统,在开发时,拉取了一个系统的代码后,往往这个系统会依赖另一个系统。例如系统A调用系统B的一个接口,那么你点进这个接口后,会跳转到mod文件中B系统的接口上。

这时候你需要编写A,B两个系统的代码,如果你只拉取了A系统代码,是不能再A系统的mod文件中对B系统代码进行修改的,只能拉取A,B两个系统的代码到本地进行开发,修改B系统的代码后需要提交到远程仓库上,在A系统中使用

go get gitxxx.xxxxxtech.com.cn/xxxx/B系统仓库名@分支名

就可以引用到B系统最新的代码了。

当然如果你觉得太麻烦了,可以在A系统的mod文件中将B系统的路径替换为本地路径,例如:

  1. replace (
  2.     go get gitxxx.xxxxxtech.com.cn/xxxx/B系统仓库名 vxxxx[版本号] => D:/GOCODE/gitxxxCode/B系统
  3. )

这样只要你在本地修改了B系统的代码,那么A系统就立即可以引用B系统的最新代码。

后续待更新


总结

今天算是第一次使用gitlab,之前也这么使用过GitHub,但是时间太久了忘记怎么配置了,所以在此做个笔记。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/192932
推荐阅读
相关标签
  

闽ICP备14008679号