GIT

Git是一个分布式的版本控制系统,只是软件,需要你下载装到电脑上,实现git功能。

Github、Gitee基于git的项目托管平台。Github是国外的,连接速度因人而异;另外Github收费用户才能创建私有项目。

准备内容

  1. 注册码云(Gitee),创建一个项目,得到项目url:https://gitee.com/YourGiteeName/projectname。https://gitee.com/signup
  2. 下载git, 默认安装。https://git-scm.com/downloads
  3. 下载安装VSCode。https://code.visualstudio.com/

一、生成ssh公钥

1.打开Git Bash,按如下命令来生成 sshkey:

Administrator@JOY MINGW64 ~

$ ssh-keygen -t rsa -C joypoint@qq.com

Generating public/private rsa key pair.

Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):

Created directory '/c/Users/Administrator/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.

Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:UoQbxa…… joypoint@qq.com

The key's randomart image is:

+---[RSA 3072]----+

| .o=.o.+o  o ..   |

|  . =o       o.    |

|   +. +*+.. .     |

|.        .  o o    |

|.+ + .          o  |

|o =            .   |

|.o      .          |

|.o     .           |

|  o                 |

+----[SHA256]-----+

还可以用以下命令指定id_rsa的别名,用以配置多个SSH-Key:

$ ssh-keygen -t rsa -C 'xxxxx@company.com' -f ~/.ssh/gitee_id_rsa

2.查看 public key:

Administrator@JOY MINGW64 ~

$ cat ~/.ssh/id_rsa.pub

cat: /c/Users/Administrator/: Is a directory

ssh-rsa AAAAB3NzaC1y…… joypoint@qq.com

打开码云SSH公钥管理页面:  https://gitee.com/profile/sshkeys

填写标题,如:yourname's SSH key

复制公钥,如:ssh-rsa UoQbxa……

添加后,回到Git Bash中继续其他操作。

3.用ssh命令测试是否配置成功:

Administrator@JOY MINGW64 ~

$ ssh -T git@gitee.com

The authenticity of host 'gitee.com (120.55.226.24)' can't be established.

ECDSA key fingerprint is SHA256:FQGC9…….

Are you sure you want to continue connecting (yes/no/[fingerprint])? Yes

Warning: Permanently added 'gitee.com,120.55.226.24' (ECDSA) to the list of known hosts.

Hi JoyPoint! You've successfully authenticated, but GITEE.COM does not provide shell access.

二、Git操作-初始化Git

Administrator@JOY MINGW64 ~

$ git config --global user.name JoyPoint

Administrator@JOY MINGW64 ~

$ git config --global user.email JoyPoint@qq.com

三、创建版本库

1.首先,选择一个合适的地方,创建一个空目录YourProjName(名字任意):

Administrator@JOY MINGW64 /

$ cd /c/

Administrator@JOY MINGW64 /c

$ mkdir helloGIT

Administrator@JOY MINGW64 /c

$ cd helloGIT

(在第一次创建并初始化版本库以后,再次需要修改该库时,只需要在git bash中进入该目录即可,并可以用git remote -v查看关联情况)

2.第二步,通过git init命令把这个目录变成Git可以管理的仓库:

Administrator@JOY MINGW64 /c/helloGIT

$ git init

Initialized empty Git repository in C:/helloGIT/.git/

四、关联远程仓库

1.把一个本地仓库与一个云端Gitee仓库关联:

项目地址形式为:https://gitee.com/YourGiteeName/YourProjName.git 或者 git@gitee.com:YourGiteeName/YourProjName.git

Administrator@JOY MINGW64 /c/helloGIT (master)

$ git remote add origin https://gitee.com/JoyPoint/helloGIT.git

# 如果你发现地址关联有错,或想关联其他仓库,可以执行以下命令重新设置关联地址:

# $ git remote set-url origin https://gitee.com/JoyPoint/helloGIT.git

# 但一定要注意字母的大小写,以及文本双引号问题!!!

2.查看关联细节:

Administrator@JOY MINGW64 /c/helloGIT (master)

$ git remote -v

origin  https://gitee.com/JoyPoint/helloGIT.git (fetch)

origin  https://gitee.com/JoyPoint/helloGIT.git (push)

五、同步(拉取)

同步,也可以称之为拉取,在Git中是非常频繁的操作,为了保证代码一致性,尽可能的在每次操作前进行一次同步操作,在工作目录下执行如下命令:

Administrator@JOY MINGW64 /c/helloGIT (master)

$ git pull origin master

remote: Enumerating objects: 6, done.

remote: Counting objects: 100% (6/6), done.

remote: Compressing objects: 100% (6/6), done.

remote: Total 6 (delta 0), reused 0 (delta 0)

Unpacking objects: 100% (6/6), done.

From https://gitee.com/JoyPoint/helloGIT

* branch            master     -> FETCH_HEAD

* [new branch]      master     -> origin/master

Administrator@JOY MINGW64 /c/helloGIT (master)

$ git status

On branch master

Changes not staged for commit:

(use "git add <file>..." to update what will be committed)

(use "git restore <file>..." to discard changes in working directory)

modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

六、提交

git作为支持分布式版本管理的工具,它管理的库(repository)分为本地库、远程库。如有本地库源码文件发生修改,需要将修改提交到远程库,这时需要暂存 (add)、提交(commit)、推送(push)三步:

Administrator@JOY MINGW64 /c/helloGIT (master)

$ git add -A

warning: LF will be replaced by CRLF in README.md.

The file will have its original line endings in your working directory

Administrator@JOY MINGW64 /c/helloGIT (master)

$ git commit -m "注意名称大小写和全角标点符号"

[master ee5acbb] 注意名称大小写和全角标点符号

1 file changed, 7 insertions(+), 5 deletions(-)

Administrator@JOY MINGW64 /c/helloGIT (master)

$ git push origin master

Enumerating objects: 5, done.

Counting objects: 100% (5/5), done.

Delta compression using up to 4 threads

Compressing objects: 100% (3/3), done.

Writing objects: 100% (3/3), 416 bytes | 416.00 KiB/s, done.

Total 3 (delta 2), reused 0 (delta 0)

remote: Powered By Gitee.com

To https://gitee.com/JoyPoint/helloGIT.git

babe7af..ee5acbb  master -> master

七、VSCode中使用git

1.点击 文件 > 将文件夹添加到工作区 > E:/YourProjName/ 就完成了。

无需任何配置,VSCode自动获取.git配置实现代码管理: 发生变动的文件或代码会有颜色提示。

2.同步远程仓库: 

  • 选择源控制栏(Source Control)中需要上传的文件,点击+号,暂存 (add);
  • 在[ 消息 (按 Ctrl+Enter 提交) ]中输入注释, 提交(commit);
  • 点击更多动作中的push图标,推送(push)。

_____________________

# Git配置多个SSH-Key
# 在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

______________________

基于码云的协同开发实践

需求描述如下:

1.有一个基础性工程共享给大家使用,缺省不允许使用者直接提交修改
2.使用者在使用过程中会发现问题,需要及时修改基础工程代码
3.修改的代码需要提交给基础工程管理者审核后合并
4.使用者需要更新最新的基础工程代码并再此上继续工作 基于这个应用场景,可采用码云平台提供的fork和pull request(PR)结合来完成,具体操作步骤如下: 1.首先使用者需要复制一份基础工程到自己的用户下,Fork,在自己的用户下生成工程副本。 2.然后使用git客户端下载自己用户下的工程副本进行使用,进行修改并提交。 3.提交后进入自己用户下的工程副本页面,进入Pull Requests页面,并点击新建Pull Request按钮,创建PR,在创建PR页面中,添加修改的内容说明,并指定审查人员,点击创建。 4.等到基础工程审查人员审查结束后,代码已经进行了合并,有了新的版本,此时使用者可以进入自己的工程副本首页,点击工程名边上的强制刷新按钮获取工程的最新版本。

——————————————

$ git push origin master
remote: You do not have permission to push to the repository via HTTPS
fatal: Authentication failed for 'https://gitee.com/someuser/someproject.git/'
———————————————————————————————— 原因分析: 原因之一:
这是由于没有设置Gitee的SSH公钥。在未设置SSH公钥的情况下,可以使用git clone Gitee上的项目,但是不能git push项目到Gitee上,如果想push项目到Gitee,那么必须配置SSH公钥。
解决方法:
生成公钥和配置公钥,可以参考Gitee帮助:https://gitee.com/help/articles/4191 。 原因之二:
可能是这台电脑以前使用过git,所以windows保存的账号和密码是其他人的,所以需要进行修改账号和密码:
解决方法:
(一)进入控制面板
(二)选择用户账户
(三)选择管理你的凭据
(四)选择Windows凭据
(五)选择git保存的用户信息
(六)选择编辑或者进行删除操作
(七)完成

——————————————

在同一台电脑上切换不同gitee账号:

1、不同用户账号对应的秘钥对均已在本地生成好,并在gitee.com中添加;
2、.ssh/config文件中IdentityFile修改为对应账号的rsa;
3、git config --global user.name\email 为对应账号用户名和邮箱;
4、检查控制面板-用户账户-管理你的凭据-普通凭据,确保凭证匹配或为空;
5、用ssh -T git@gitee.com检查是否已关联对应账号;如果没有请检查上面几步。
6、后续按照常规步骤关联本地目录和远程库;
7、git pull 后,如出现没有readme.MD文件的问题,可以用$ git pull --rebase origin master再次拉取一次。

-------------------------------------------

实现同一本地仓库与 Gitee 和 GitHub 两个远程库同步更新

将本地的代码仓库与 Gitee 和 GitHub 两个远程库同时关联,即可实现本地仓库与两个远程库的同步更新

具体方法操作如下:

1:移除现在旧有的远程服务器origin

git remote rm origin

2:关联gitosc远程库

git remote add gitee https://gitee.com/xxx/xxx.git
git push -u gitosc master

关联github远程库

 git remote add github https://github.com/xxx/xxx.git
git push -u github master
现在,用git remote -v查看远程库信息,可以看到两个远程库: 
git remote -v
gitee git@gitee.com:xxx/xxx.git (fetch)
gitee git@gitee.com:xxx/xxx.git (push)
github git@github.com:xxx/xxx.git (fetch)
github git@github.com:xxx/xxx.git (push) (2)同步更新 如果要推送到 GitHub,使用命令:
git push GitHub 分支名
eg:git push GitHub master
如果要推送到 Gitee,使用命令:
git push Gitee 分支名
可能提示push失败这里可以尝试用强制push:
$ git push github master -f
/* 由于是初始化项目,并从远程仓库pull,使用强制推送不会对项目造成影响 一般不推荐强制push */ 至此,本地库就可以同时与多个远程库互相同步

参考:

https://blog.csdn.net/watfe/article/details/79761741

https://gitee.com/help/articles/4229#article-header0

Gitee Git bash VSCode操作简易说明的更多相关文章

  1. 【git】idea /git bash命令 操作分支

    1.需求 因为目前要对项目做一些改动,而项目又即将上线,这些新的改动又不需要一起上线,所以这个时候需要在原有的master分支上重新拉出一个分支进行开发. 2.分支操作 打开git bash工具→切换 ...

  2. git bash 下操作文件及文件夹命令

    1, cd : change directory的简写,改变目录的意思,就是切换到哪个目录下, 如 cd e:\fff  切换 E 盘下面的fff 目录. 当我们用cd 进入文件夹时,我们可以使用 通 ...

  3. Git Bash 简单操作

    在Windows下使用Git Bash,用的是Linux命令,常用几个文件操作命令如下: Windows命令 Linux命令 意义 cd e:\xxx cd /e/xxx 切换到xxx目录 cd pw ...

  4. git bash 常用操作文件命令行

    1, cd : change directory的简写,改变目录的意思,就是切换到哪个目录下, 如 cd e:\fff 切换 E 盘下面的fff 目录. 当我们用cd 进入文件夹时,我们可以使用 通配 ...

  5. git bash + gitee

    使用Git Bash从Gitee上下载代码到本地以及上传代码到码云Git: https://www.cnblogs.com/babysbreath/p/7274195.html 指定克隆远端分支 ht ...

  6. VSCode添加git bash作为默认终端

    VSC添加git bash作为默认终端的settings.json添加 { "terminal.integrated.shell.windows": "D:\\Progr ...

  7. 在操作Git Bash时出现的问题

    参考博客:https://blog.csdn.net/weixin_44394753/article/details/91410463 1.问题1 $ git remote add origin gi ...

  8. #VScodd集成Git Bash 命令行 #怎么把Git Bash集成到VScode

    配置 Step1. File-Preferences-Setting Step2. 搜索"terminal>integrated>shell A" Step3. 找到t ...

  9. git提交代码到GitHub操作-简易版(后续完善)

    一.git上传代码到GitHub 1.远程仓库GitHub创建好一个新仓库注意仓库名 2.本地建一个目录写代码,目录名与仓库命名一致 3.在目录下右键 git Bash here 打开git终端命令行 ...

随机推荐

  1. java配置文件集

    <!-- 激活组件扫描功能,扫描aop的相关组件组件 --> <context:component-scan base-package="com.yingjun.ssm.a ...

  2. java-zhisji

    1. int indexOf(int ch):用来检查给定的一个字符在当前字符串中第一次出现的下标位置.这里的下标和数组的下标意思相近,0表示该字符串的第1个字符,以此类推.当该字符串中并不     ...

  3. 关于JavaScript的DOM和BOM

    本文探讨JavaScript的三大部分中的两个部分,DOM和BOM. DOM介绍 DOM,全称Document Object Model,即文档对象模型.它 是W3C的一个标准,定义了一个对文档操作的 ...

  4. Unity酱~ 卡通渲染技术分析(一)

    前面的话 unitychan是日本unity官方团队提供的一个Demo,里面有很好的卡通渲染效果,值得参考学习 上图是我整理出来的shader结构,可以看到Unity娘被拆分成了很多个小的部件,我想主 ...

  5. landsat8波段叠加(layer stacking)

    许久没更.最近一直在看IDL,忽略了gdal的学习. 今天做了landsat8的辐射定标,需要通过reflectance gains/bias来进行波段运算.由于landsat8 oli未提供一个完整 ...

  6. UnityTips:不要在发布版本中实现OnGUI方法

    0x00 问题 不知道大家是否在调试Unity应用性能的时候发现过一条常见的Marker:UIEvents.IMGUIRenderOverlays. 很多情况下,这条叫做UIEvents.IMGUIR ...

  7. 免费网盘!无限申请5TB容量并且不限速的网盘!

    鸽了好久没有更新博客了哎…… 前言 这里我先说一下下,本人深受百度网盘坑害,自己上传的文件,16GB下载花了3天时间 最后下载失败? 所以找到的一个新的储存个人文件的方法. 这个网盘是onedrive ...

  8. [redis读书笔记] 第二部分 单机数据库 数据库实现

    一 数据库基本实现/命令下发的实现 redis.c里,大家能看到redisCommandTable[] 的实现,列出了支持的所有命令.大部分的入参为redisClient *c,当一条REDIS命令下 ...

  9. 解释为什么不能依赖fail-fast

    我的观点fail-fast是什么就不多解释了,应该注意到的是(以ArrayList为例):modCount位于AbstractList中, protected transient int modCou ...

  10. Hapi+MySql项目实战路由初始化(二)

    配置路由规则 将路由文件放在routes文件夹里,修改‘Server.js’文件,增加如下代码: 我们这里指明了require('./routes') routes文件夹,require可以文件但是不 ...