Open Qingquan-Li opened 7 years ago
远程仓库的使用:
远程仓库是指托管在因特网或其他网络中的你的项目的版本库。 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等。
向 Github 提交代码或无需密码拉取 GitHub 代码:在本机生成 SSH 密钥对,将 .pub 公钥配置到 https://github.com/settings/keys ,参考:
.pub
配置好本地和远程 GitHub 的 SSH :将本地主机的 ~/.ssh/id_rsa.pub 公钥内容,复制添加到 GitHub => Settings => SSH Keys(添加 SSH key 成功之后,我们才有权限向 GitHub 上我们自己的项目提交代码):
~/.ssh/id_rsa.pub
SSH key 添加成功之后,输入 ssh -T git@github.com 进行测试,如果出现以下提示证添加成功了:
ssh -T git@github.com
Hi FatliTalk! You've successfully authenticated, but GitHub does not provide shell access.
首先,在 GitHub 上新建一个(不勾选初始化)仓库,然后 GitHub 就会提供一个 git 提交代码的教程页面,根据教程把本地已经完成 git init 初始化的代码仓库提交到远程 GitHub 仓库。
git init
git remote add <shortname> <url>
git push -u <remote name> <branch name>
git clone
注: origin 是给这个项目的远程仓库起的名字,是的,名字你可以随便取,只不过大家公认的只有一个远程仓库时名字就是 origin ,为什么要给远程仓库取名字?因为我们可能一个项目有多个远程仓库?比如 GitHub 一个,比如公司一个,这样的话提交到不同的远程仓库就需要指定不同的仓库名字了。
实例:
$ # push an existing repository from the command line $ # 此处使用 https 协议传输需要验证用户名和密码,使用 git 协议传输则不需要(已验证ssh) $ git remote add github git@github.com:FatliTalk/wepost.git $ # 使用 git remote -v 命令可查看本地仓库关联远程仓库的状态列表 $ git push -u github master
git clone git@github.com:用户名/仓库名.git
git commit
git push origin master
推送项目到远程服务器,语法: git push [remote-name] [branch-name]
git push [remote-name] [branch-name]
注:你可以把 clone 命令理解为高级点的复制,这个时候该项目本身就已经是一个 git 仓库了,不需要执行 git init 进行初始化,而且甚至都已经关联好了远程仓库。
此方法适用于:使用 GitHub 客户端的方式,几乎适用所有场景,并且简单、直观。
和提交代码到 GitHub 基本一样。
Create a new repository:
git clone https://git.qcloud.com/ccb_1106478060/helloworld.git cd helloworld touch README.md git add README.md git commit -m "add README" git push -u origin master
Existing folder or Git repository:
cd existing_folder git init git remote add origin https://git.qcloud.com/ccb_1106478060/helloworld.git git add . git commit git push -u origin master
➜ /Users/fatli/miniprogram/syytest > git init Initialized empty Git repository in /Users/fatli/miniprogram/syytest/.git/ ➜ /Users/fatli/miniprogram/syytest git:(master) ✗ > git checkout -b dev Switched to a new branch 'dev' ➜ /Users/fatli/miniprogram/syytest git:(dev) ✗ > git add . ➜ /Users/fatli/miniprogram/syytest git:(dev) ✗ > git commit -m "first commit" [dev (root-commit) 153201f] first commit 56 files changed, 1532 insertions(+) create mode 100644 .DS_Store create mode 100644 app.js # . . . . . . ➜ /Users/fatli/miniprogram/syytest git:(dev) > git remote add origin https://git.qcloud.com/ccb_1106478060/syytest.git ➜ /Users/fatli/miniprogram/syytest git:(dev) > git push -u origin dev Counting objects: 81, done. Delta compression using up to 4 threads. Compressing objects: 100% (65/65), done. Writing objects: 100% (81/81), 34.97 KiB | 1.94 MiB/s, done. Total 81 (delta 7), reused 0 (delta 0) remote: Resolving deltas: 100% (7/7) remote: Processing changes: done remote: Updating references: 100% (1/1) To https://git.qcloud.com/ccb_1106478060/syytest.git * [new branch] dev -> dev Branch dev set up to track remote branch dev from origin. ➜ /Users/fatli/miniprogram/syytest git:(dev) >
git remote
git remote -v
git remote show [remote-name]
语法:git remote rename 重命名引用的名字,修改一个远程仓库的简写名 示例:git remote rename a b 将 a 重命名为 b
git remote rename
git remote rename a b
语法:git remote rm 移除一个远程仓库 - 你已经从服务器上搬走了或不再想使用某一个特定的镜像了,又或者某一个贡献者不再贡献了 示例:git remote rm a 移除引用为 a 的仓库(不是移除名为 a 的仓库)
git remote rm
git remote rm a
远程仓库的使用:
一、向 Github 提交代码:
向 Github 提交代码或无需密码拉取 GitHub 代码:在本机生成 SSH 密钥对,将
.pub
公钥配置到 https://github.com/settings/keys ,参考:配置好本地和远程 GitHub 的 SSH :将本地主机的
~/.ssh/id_rsa.pub
公钥内容,复制添加到 GitHub => Settings => SSH Keys(添加 SSH key 成功之后,我们才有权限向 GitHub 上我们自己的项目提交代码):SSH key 添加成功之后,输入
ssh -T git@github.com
进行测试,如果出现以下提示证添加成功了:首先,在 GitHub 上新建一个(不勾选初始化)仓库,然后 GitHub 就会提供一个 git 提交代码的教程页面,根据教程把本地已经完成
git init
初始化的代码仓库提交到远程 GitHub 仓库。git remote add <shortname> <url>
:添加一个新的远程 Git 仓库,同时指定一个用来引用的简写(后面的操作命令可以用 shortname 代替 url )。git push -u <remote name> <branch name>
,参数 -u 表示(本地分支与远程主机分支)建立追踪关系(tracking)。注:方法一中,在git clone
的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的 master 分支自动"追踪" origin/master 分支。注: origin 是给这个项目的远程仓库起的名字,是的,名字你可以随便取,只不过大家公认的只有一个远程仓库时名字就是 origin ,为什么要给远程仓库取名字?因为我们可能一个项目有多个远程仓库?比如 GitHub 一个,比如公司一个,这样的话提交到不同的远程仓库就需要指定不同的仓库名字了。
实例:
1. 提交项目至 GitHub(其他方法一)
git clone git@github.com:用户名/仓库名.git
git commit
git push origin master
提交至 GitHub推送项目到远程服务器,语法:
git push [remote-name] [branch-name]
注:你可以把 clone 命令理解为高级点的复制,这个时候该项目本身就已经是一个 git 仓库了,不需要执行
git init
进行初始化,而且甚至都已经关联好了远程仓库。2. 提交项目至 GitHub(其他方法二)
三、提交项目至 TGit(dev分支)
Create a new repository:
Existing folder or Git repository:
实例:
四、查看远程仓库
git remote
git remote -v
:显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URLgit remote show [remote-name]
:查看某一个远程仓库的更多信息五、远程仓库的重命名与移除
重命名:
语法:
git remote rename
重命名引用的名字,修改一个远程仓库的简写名 示例:git remote rename a b
将 a 重命名为 b移除:
语法:
git remote rm
移除一个远程仓库 - 你已经从服务器上搬走了或不再想使用某一个特定的镜像了,又或者某一个贡献者不再贡献了 示例:git remote rm a
移除引用为 a 的仓库(不是移除名为 a 的仓库)