Git+Gitlab 远程库测试学习

Git远程仓库

1、Git远程仓库

何搭建Git远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现

Gitee

码云是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快

码云 Gitee - 基于 Git 的代码托管和研发协作平台

GitLab

GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务

GitLab The One DevOps Platform | GitLab

本文章以 极狐gitlab 作为远程仓库学习举例

GitHub

GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub

gitHub GitHub: Let’s build from here · GitHub


2、从远程库克隆

git clone <url>   直接clone,不用初始化本地库git init。如

git clone https://jihulab.com/csdn1/hello-jihu.git

命令执行完后,会自动为这个远程仓库建一个名为origin的代号.有了这个origin以后直接推送就行,不用再给远程仓库起别名

有可能的报错:

Incorrect username or password (access token)
fatal: Authentication failed for 'https://gitee.com/faith01238/Dockers.git/'
解决办法:打开控制面板--凭据管理器。删除相应的凭证


3、查看远程库信息

git remote -v //查看远程库信息

上面显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址

关联后远程库的名字就是origin

git remote add <别名> <远端地址>

git remote add orign 复制名


4、根据名字删除远程库

根据名字删除远程库:比如删除origin

git remote rm origin

此处的“删除”其实是解除了本地和远程的绑定关系,并不是物理上删除了远程库。远程库本身并没有任何改动。要真正删除远程库,需要登录到Gitlab,在后台页面找到删除按钮再删除


5、wiondows 凭据

(仓库直接下载下来,没有输入密码)

控制面板-用户账户-管理windows凭据


远程分支

1、同名分支跟踪

跟踪远程同名分支后, push 和 pull 就自动同步。否则可能会出现如下错误提示

如果git pull提示 no tracking information 则说明本地分支和远程分支的链接关系没有创建

情况一:在分支推送的时候

git push --set-upstream origin branch_name

这样就可以自动在远程创建一个 branch_name 分支,然后本地分支会 track 该分支。

情况二:手动建立追踪关系

git branch --set-upstream-to=<远程主机名>/<远程分支名> <本地分支名>

举例如下:

git branch --set-upstream-to=origin/openapi-token-dev openapi-token-dev

1、第一次推送master分支时,加上了-u参数。会把本地的master分支和远程的master分支关联起来,

git push -u origin master

2、在以后的推送或者拉取时就可以简化命令,如下:

  git push <远端代号> <本地分支名称>

git push origin master
//把本地master分支的最新修改推送至远程仓库

2、查看本地分支与远程分支的关联

查看本地分支与远程分支的关联

git branch -v

查看本地分支+上次提交的信息,即可以查看每一个分支的最后一次提交

git branch -vv

查看本地分支+上次提交的信息+本地和远程分支的关系
如果本地分支没有和任何远程分支建立追踪关系,那么就不显示。


3、分支推送

推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支(没有会自动创建)

如下:推送分支openapi-token-dev

git push origin openapi-token-dev:openapi-token-dev

推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上。


4、删除远程分支 

git push origin --delete department-dev 

可以删除远程department-dev分支


5、Cherry pick

git cherry-pick命令的作用,就是将指定的提交(commit)应用于其他分支。

git cherry-pick命令的参数,是提交的哈希值

Cherry pick 支持一次转移多个提交。

$ git cherry-pick <HashA> <HashB>

上面的命令将 A 和 B 两个提交应用到当前分支。这会在当前分支生成两个对应的新提交。


冲突测试

1、idea解决冲突

三视图中左变为自己代码,右边为别人代码,中间为上一个版本代码

Accept Left

左侧就是自己的代码,可以看到最上面代码上方有"Your version"标识。

选择Accept Left选项即表示使用自己的代码覆盖掉别人的冲突代码

Accept Right

如果选择右侧别人的代码,则自己的代码会被覆盖


2、本地拉取冲突

前提在同一个分支,如main分支。

我本地修改了某一个文件的某一行还未提交,这时候我想提交了,那我就先去拉取最新的代码。这时候一拉,就报如下这个错了

报错原因分析:因为有其他人如baoe也改了这一行,并且他已经提交并推送到远程仓库了

解决方式一:还原

像我之前一样吗,把自己的修改还原并备份,然后再重新拉取。。

虽然这能解决,但是拉取完新的代码,我还需要再次把备份的东西重新手动再写一遍。。。

虽然笨,但是有效,哈哈哈

解决方式二:贮藏

备份当前的工作区的内容,让工作区变为和上次提交的内容一致。相当于备份的工作不用我们自己去做了。

# 暂存本地更改
git stash

# 执行合并
git pull

# 恢复本地更改
git stash pop

最后恢复本地更改的时候可能与最新代码有冲突,此时仍需要手动解决冲突。如下:

解决冲突


3、分支合并冲突

相关推荐

  1. aardio - godking.json 【测试

    2024-06-09 09:52:02       19 阅读
  2. 本地项目如何连接远程git

    2024-06-09 09:52:02       23 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 09:52:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 09:52:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 09:52:02       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 09:52:02       20 阅读

热门阅读

  1. VSCode 1.90版本 升级需谨慎~(Python)

    2024-06-09 09:52:02       8 阅读
  2. React Native 快速Demo(2)

    2024-06-09 09:52:02       7 阅读
  3. PostgreSQL教程

    2024-06-09 09:52:02       6 阅读
  4. Docker面试整理-Docker Swarm是什么?

    2024-06-09 09:52:02       10 阅读
  5. Python——用新字符替换字符串中的旧字符

    2024-06-09 09:52:02       9 阅读
  6. 基本通信设备

    2024-06-09 09:52:02       7 阅读
  7. LIO-SAM报错记录

    2024-06-09 09:52:02       11 阅读
  8. GlusterFS分布式文件系统

    2024-06-09 09:52:02       9 阅读
  9. 821. 字符的最短距离

    2024-06-09 09:52:02       8 阅读
  10. 【力扣】 两个字符串的最小ASCII删除和

    2024-06-09 09:52:02       11 阅读
  11. git checkout file 撤销对该文件的所有修改

    2024-06-09 09:52:02       9 阅读