Git远程仓库

1.使用ssh key

1.ssh key验证身份

原理:

电脑上放私钥,Github账号里留下公钥。上传代码用私钥加密,Github用公钥解密。如果解开说明是配对的。

Git远程仓库_第1张图片

 2.创建ssh key

Github帮助文档:Generating a new SSH key and adding it to the ssh-agent - GitHub Docs

使用cmder命令行任意目录下运行,一直回车。

注:私钥永远不要给别人看,别人可以使用你的私钥,伪造你的身份篡改你的代码。公钥可以给任何人看。如果已经生成请不要再生成因为他会让你之前的钥匙失效。

  • 在github账户上传你的公钥

账号头像>Settings>SSH and GPG keys>New SSH key

  • cat /c/Users/Yulingpan/.ssh/id_rsa.pub,上传公钥内容

使用命令行工具,得到公钥内容,粘贴到 GitHub。

注:id_rsa存放了私钥。id_rsa.pub存放公钥。

接受github给你的公钥(yes)。出现Hi 用户名!时说明这台电脑的私钥和你的github账号公钥已经存在一对一的配对关系了。

2.将本地仓库上传至github远程仓库

1.创建新仓库

Recent Repositories(最近的仓库)-New>输入Repository name,creat

2.上传至github新仓库

使用vscode打开本地仓库新建终端。

已经有本地仓库的情况下在终端运行以下命令(从命令行推送现有存储库)。

Git远程仓库_第2张图片

 3.其他手动上传命令(不使用提示)

git remote add origin git@xxxxxxx(remote远程的,origin起源)

在本地添加远程仓库地址。

注:orgin是远程仓库默认名称,建议不要更改。git@xxx,远程仓库sshy地址。

即,本地git仓库添加了一个对应的远程仓库,仓库名origin,仓库地址git@xxxx。

git push -u origin main(push推送)

推送本地 main分支到远程 origin仓库 的 main 分支。

注:-u origin main 的意思是设置上游分支,第一次提交到此分支的时候需要添加此参数。第一次操作之后直接使用git push(上传到远程此分支),git pull(下载远程仓库此分支代码)。

出现main -> main这类标志说明上传成功。并且上传的的是本地提交的分支,而不是我们看见的文件。

git push origin X:X

上传本地X分支到远程origin仓库X分支。

注:多分支上传,左边源头(本地):右边目标(远程)。

git checkout x/git push -u origin x与这句代码作用相同。切换到x分支,然后上传。

git pull

在我已经拥有本地仓库的前提下,只下载本地没有的那一部分变更。

4.git open,打开对应的远程仓库

在命令行下载:yarn global add git-open

下载完后可以直接打开对应的远程仓库。

3.下载远程仓库到本地

1.git clone git@xxxxx [目标路径],下载远程仓库

在命令行执行此语句,git@xxxx为ssh地址(guthub远程仓库页面>code>SSH地址,然后复制)。建议在桌面进行下载,即cmder当前pwd为Desktop。

注:当远程仓库有多分支时默认展示main分支。使用cmder打开此目录,git checkout X(其他分支)切换到X分支,就能展示其他分支的内容。


使用不同机器,要写上传新的 ssh key(一机一key)。账号所有远程仓库共享公钥,一台电脑独享自己的私钥,两两配对。

git clone下载的目录存在本地git仓库(.git目录)和最新代码。下载完后可以使用git add / git commit / [git pull] / git push,添加代码重新提交到本地,再提交至远程,更新远程仓库。 git pull(pull拉,下载):当远程代码变动时使用此命令。(例:其他同事更改了远程仓库的代码此时需要先git pull在gitpush)

2.关于clone的文件名

  • git clone git@?/xxx.git

创建一个xxx目录(即为远程的仓库名),还会在当前目录下创建一个 xxx/.git 目录, 还会把 main分支的最新代码下载到当前目录里的 wheels 目录里。

(例:--将git-demo-2仓库直接克隆,文件名为仓库名--  [email protected]:yulingpan/git-demo-2.git)

  • git clone git@?/xxx.git yyy   

会在本地新建 yyy 目录,类似于重命名下载目录名改名为yyy。

(例:--将git-demo-2仓库克隆到yyy文件夹中,即重命名远程仓库名--

[email protected]:yulingpan/git-demo-2.git  yyy )

  • git clone git@?/xxx.git .   

会在当前目录下创建一个 .git 目录,并把最新代码下载到当前目录。

(例:--将git-demo-2仓库克隆到zzz空文件夹中--

cd zzz

[email protected]:yulingpan/git-demo-2.git .   )

4.一个本地仓库上传两个远程仓库

Git远程仓库_第3张图片

 本地仓库添加两个远程仓库地址(remote add 两个仓库名)

推送到目标仓库的分支(push 不同仓库名)

注:一般这种多仓库情况适用于免费版和收费版,将部分功能推送至收费版。

 5.题外话

  • git clone加速下载:Surf_the_Internet/命令行篇.md at master · sun-shadow/Surf_the_Internet · GitHub
  • 一些其他的下载远程仓库分支:​​​​​​How do I clone a single branch in Git? - Stack Overflow

你可能感兴趣的:(git,github,服务器)