git远程仓库下载以及上传

一、远程仓库

 git远程仓库下载以及上传_第1张图片

通常我们并不常亲自建立远程仓库,而是委托给『第三方』。

常见的操作是,先在第三方上创建『远程 Git 文档库』,然后复制(Clone)出一个『本地 Git 文档库』

1、在托管网站上创建远程仓库

常见的代码托管仓库有:

  • 国外:github、gitlib

  • 国内:gitee、Coding

在托管网站上创建项目后,通常项目目录下是空的,可以通过以下 2 种途径初始化该项目:

创建远程仓库

git远程仓库下载以及上传_第2张图片

git远程仓库下载以及上传_第3张图片

远程仓库创建成功后需要配置自己生成的密钥【了解】

生成密钥
ssh-keygen -t rsa -b 4096 -C "备注"  ///一路回车

cat ~/.ssh/id_rsa.pub //查看密钥然后复制到gitee上,如下

管理员启动cmd,如果显示没有这个命令的话就用git窗口执行

生成密钥

git远程仓库下载以及上传_第4张图片

 生成成功后查看密钥,红色框内的为密钥git远程仓库下载以及上传_第5张图片

然后复制粘贴密钥到git远程仓库下载以及上传_第6张图片 

然后生成密钥

2、克隆(拉取)远程仓库至本地

git clone <远程文档库的路径> <本地文档库的文件夹名称> 

更具体的的格式为:

git clone <本地文档库名称> 

例如:

git clone https://github.com/<用户名>/<项目名>.git

如果你在托管网站上添加了你本机的 ssh-key,那么还可以使用如下格式:

git clone @:<远程文档库路径> <本地文档库路径>

3、推送本地仓库内容到远程仓库

当我们完成对本地文档库的修改,可以将这些修改『推送』到远程 Git 仓库:

如果是第一次推送一个工程到远程仓库

git remote add origin 远程仓库地址
如:
git remote add orign https://gitee.com/xiaokongming/three.git

然后:

git pull --rebase origin master //同步远程的数据

git push origin [分支名称]
如:
git push origin master

如果出现not found 就要先同步远程数据之后再提交

git push 有两种模式:

  • 推送本地『所有』分支,

  • 推送『当前』分支。

  • 如多使用第一种模式,配置:

git config --global push.default matching    #第一种配置  
git config --global push.default simple      #第二种配置  Git2.0  默认

第二种模式更安全,推荐使用第二种。

无论哪种传送模式,只要执行 git push --all 都是推送所有分支

实验操作:

如:在本地添加一个文件,

 git add  "add.txt"   #提交到本地暂存区
git  commit -m "v6"
git push origin master 

4、添加仓库开发者

由于gitee上的仓库为私有的,只有自己才能对远程仓库进行操作,如果团队中的其他成员需要对该远程仓库进行操作,必须将团队成员的gitee帐号添加到仓库中。

提示:一个远程仓库最多只能添加5个成员

git远程仓库下载以及上传_第7张图片

配置好后团队的其他成员就可以使用到该仓库

5、设置分支保护

git远程仓库下载以及上传_第8张图片

git远程仓库下载以及上传_第9张图片

6、推送冲突

如果远程分支并非你一个人独有,那么很有可能由于别人的提交,导致远程分支向前演进,从而导致 push 失败。此时需要『三步合并法』解决冲突问题。

  1. 从远程 Git 文档库取回当前所在分支的最新数据。

  2. 把远程 Git 文档库的分支合并到本地 Git 的分支。这一步可能会出现冲突。解决冲突,合并代码。

  3. add-commit-push 三联,提交并推送本地数据至远程 Git 文档库。

git pull 命令可以完成前两部操作。它等价于:先执行 git fetch,再执行 git rebase origin/master

7、fetch 和 pull

如果你有一个远程 Git 分支,比如在 GitHub 上的分支,当远程分支上包含当前分支没有的提交时,可以使用取回。

比如,当合并了另一个分支或你的同事推送了一个快速修复时。

通过在这个远程分支上执行 git fetch ,我们就可在本地获取这些修改。这不会以任何方式影响你的本地分支:fetch 只是单纯地下载新的数据而已 。现在我们可以看到自上次推送以来的所有修改了。这些新数据也已经在本地了,我们可以决定用这些新数据做什么了。

尽管 git fetch 可用于获取某个分支的远程信息,但我们也可以执行 git pullgit pull 实际上是两个命令合成了一个:git fetch + git merge 。当我们从来源拉取修改时,我们首先是像 git fetch 那样取回所有数据,然后最新的修改会自动合并到本地分支中。我们现在与远程分支完美同步了,并且也有了所有最新的修改

你可能感兴趣的:(#,git,工具包,git,github)