【版本控制工具二】Git 和 Gitee 建立联系

文章目录

    • 前言
    • [一、Git 和 Gitee 建立联系](#一、Git 和 Gitee 建立联系)
      • [1.1 任意目录下,打开 git bash 命令行,输入以下命令生成公钥](#1.1 任意目录下,打开 git bash 命令行,输入以下命令生成公钥)
      • [1.2 配置SSH公钥](#1.2 配置SSH公钥)
      • [1.3 进行全局配置](#1.3 进行全局配置)
    • 二、其它相关Git指令
      • [2.1 常用指令](#2.1 常用指令)
      • [2.2 指令操作可能出现的问题](#2.2 指令操作可能出现的问题)
    • 三、补充
      • [3.1 **为什么要先commit,然后pull,然后再push,我pull了,岂不是把自己改的代码都给覆盖掉了嘛,因为远程没有我改的代码,我pull,岂不是覆盖了我本地的改动好的地方了?那我还怎么push?**](#3.1 为什么要先commit,然后pull,然后再push,我pull了,岂不是把自己改的代码都给覆盖掉了嘛,因为远程没有我改的代码,我pull,岂不是覆盖了我本地的改动好的地方了?那我还怎么push?)
      • [3.2 两个分支,A和B,A合并B和B合并A,有区别吗?](#3.2 两个分支,A和B,A合并B和B合并A,有区别吗?)

前言

上一篇文章讲了如何安装和使用git版本控制工具。

但说起版本控制,怎么少的了团队协作,如果下班啦不想带电脑晚上还想继续搞怎么办?

那就使用码云、github在线管理吧!

数字化管理平台
Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus
权限系统-商城
个人博客地址

一、Git 和 Gitee 建立联系

1.1 任意目录下,打开 git bash 命令行,输入以下命令生成公钥

ssh-keygen -t rsa -C 邮箱

回车出现 (y/n), 输入 y , 连续点击回车,即可生成,效果如下:

1.2 配置SSH公钥

  1. 打开目录 C:\Users\Dell\.ssh 目录,找到 id_rsa.pub 文件,使用记事本打开

    注意:不同电脑,用户目录有所差异

  2. 返回到浏览器中找到刚刚云端仓库创建完成的 gitee 页面

    右上角找到个人信息点开,找到 "设置" 并打开
    3. 设置页面如下

  3. 找到左侧栏 "安全设置" 中的 "SSH公钥",点击后如下

生成公钥的官方指导步骤:https://gitee.com/help/articles/4191#article-header0

默认公钥数量为 0,在 "添加公钥" 栏目下,添加 "标题" 和 "公钥"

注:标题名字为自定义 公钥为刚刚用记事本打开的 "id_rsa.pub" 文件中的内容

粘贴完成后,点击确定。此时就会显示 " 您当前的SSH公钥数:1 "。

1.3 进行全局配置

输入以下指令

git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

将纳入版本库的文件,提交到 gitee 远程仓库:

git remote add origin 你的仓库地址
git push -u origin master

此时,提交完成,打开浏览器,输入你的仓库地址 ,如: https://gitee.com/magnumhou/test.git 即可看到上传文件:

二、其它相关Git指令

2.1 常用指令

  • 查看当前分支:git branch
  • 查看包含远程分支在内的所有分支:git branch -a
  • 创建分支:git branch
  • 切换分支:git checkout
  • 创建+切换分支:git checkout -b
  • 推送本地分支到远程分支 (远程和本地分支需同名):git push origin :
  • 如果本地分支未与远程分支建立关联,拉取远程代码需执行:git pull origin 也就是需标明拉去远程的具体分支名*
  • 合并某分支到当前分支:git merge
  • 删除本地分支:git branch -d
  • 删除远程分支:git push origin : 或 git push origin --delete
  • git clone 项目地址 下载或克隆别人的项目到本地
  • git status 查看被修改的文件
  • git diff 文件 查看指定文件修改的内容
  • git reset --hard HEAD^ 回退到上一个版本
  • git reset --hard HEAD^^ 回退到上上个版本
  • git reset --hard HEAD^^...^^ 回退到上N个版本,当然这是比较麻烦的,可以使用以下简化
  • git reset --hard HEAD~100 回退到上100个版本
  • git reset --hard HEAD commit id 通过指定id回到未来某个版本,可以通过 git log 查看提交历史

2.2 指令操作可能出现的问题

git pull 将远程主机的最新内容拉下来后直接合并 可能会出现冲突

git pull origin master  // 拉取主分支最新代码,手动解决冲突

pwd 查看当前目录所在的系统文件路径

三、补充

3.1 为什么要先commit,然后pull,然后再push,我pull了,岂不是把自己改的代码都给覆盖掉了嘛,因为远程没有我改的代码,我pull,岂不是覆盖了我本地的改动好的地方了?那我还怎么push?

这个先 commit 再 pull 再 push 的情况就是为了应对多人合并开发的情况:

  1. commit 是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较;
  2. pull是为了本地 commit 和远程commit 的对比记录,git 是按照文件的行数操作进行对比的,如果同时操作了某文件的同一行那么就会产生冲突,git 也会把这个冲突给标记出来,这个时候就需要先把和你冲突的那个人拉过来问问保留谁的代码,然后在 git add && git commit && git pull 这三连,再次 pull 一次是为了防止再你们协商的时候另一个人给又提交了一版东西,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了,不会把你的代码给覆盖掉
  3. 出现代码覆盖或者丢失的情况:比如A B两人的代码pull 时候的版本都是1,A在本地提交了2,3并且推送到远程了,B 进行修改的时候没有commit 操作,他先自己写了东西,然后 git pull 这个时候 B 本地版本已经到3了,B 在本地版本3的时候改了 A 写过的代码,再进行了git commit && git push 那么在远程版本中就是4,而且 A 的代码被覆盖了,所以说所有人都要先 commit 再 pull,不然真的会覆盖代码的

3.2 两个分支,A和B,A合并B和B合并A,有区别吗?

两个互相合并的唯一区别就是 A->B 的时候 B 分支上会产生一个 merge_commit 的信息,这个时候 B 是合并状态而 A 未合并状态,如果现在没有发生任何改动执行 B->A 就直接切换过去了,连 merge_commit 都不会生成了

相关推荐
茜茜西西CeCe1 小时前
移动技术开发:登录注册界面
java·gitee·gradle·android studio·安卓·移动技术开发·原生安卓开发
悟空20166 小时前
001、Git开发流程规范
git
Li小李同学Li6 小时前
git学习【持续更新中。。。】
git·学习·elasticsearch
晨春计8 小时前
【git】
android·linux·git
念幽8 小时前
Git常用命令
git
神技圈子9 小时前
【git系列】git中的那些迷惑的术语以及概念详解
git
benben0449 小时前
Photoshop使用方法大全
git
ou.cs10 小时前
git 删除远程分支的几种写法
git
atlanteep10 小时前
Linux·权限与工具-git与gdb
linux·git
冬田里的一把火320 小时前
[Android][Reboot/Shutdown] 重启/关机 分析
android·gitee