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. BZOJ 2434 阿狸的打字机(ac自动机+dfs序+树状数组)

    题意 给你一些串,还有一些询问 问你第x个串在第y个串中出现了多少次 思路 对这些串建ac自动机 根据fail树的性质:若x节点是trie中root到t任意一个节点的fail树的祖先,那么x一定是y的 ...

  2. python库之matplotlib学习---关于坐标轴

    首先定·定义x, y创建一个figure import numpy as np import matplotlib.pyplot as plt x = np.linspace(-1, 1, 10) y ...

  3. 小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame

    在家为国家做贡献太无聊,不如跟我一起学点 Python 人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Panda ...

  4. RocketMQ重试机制和消息幂等

    一.重试机制 由于MQ经常处于复杂的分布式系统中,考虑网络波动,服务宕机,程序异常因素,很有可能出现消息发送或者消费失败的问题.因此,消息的重试就是所有MQ中间件必须考虑到的一个关键点.如果没有消息重 ...

  5. 多用as少用强制类型转换

    在 C# 中存在一个名叫静态类型检查的机制,这个机制可以让编译器帮助我们把类型不服的用法找出来,从而使得应用程序在运行期间加少一些类型检查的操作.但是有时候我们还是需要进行运行期类型检查,比如我们在设 ...

  6. OSPF笔记——LSA及其字段,及其作用

    Link State ID Link State ID remains at 32 bits in length, Link State ID has shed any addressing sema ...

  7. Django (一) 基础

    创建项目 创建app     python manager.py startapp app01 修改.添加url from django.conf.urls import url,include fr ...

  8. centos6.5安装openLDAP2.3

    查看系统版本,内核,定时任务同步时间,关闭防火墙selinux等 [root@ldap-master ~]# cat /etc/redhat-release CentOS release 6.5 (F ...

  9. [Redis-CentOS7]Redis集合操作(四)

    SADD 集合添加 127.0.0.1:6379> SADD bbs discuz.net (integer) 1 127.0.0.1:6379> SADD bbs "tiany ...

  10. [MacOS]Chrome 强制刷新

    Chrome 调试的时候经常发现缓存没有清理 MacOS :⌘+⇧+r Windows:Ctrl + F5