|由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

友情提示:在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。

如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。

|创建远程库

 |关联远程库(根据github该仓库中的提示)***为github帐号(其中origin可修改为其他) learngit为你的仓库地址

$ git remote add origin git@github.com:***

把本地库的所有内容推送到远程库上:

$ git push -u origin master
Counting objects: 20, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (20/20), 1.64 KiB | 560.00 KiB/s, done.
Total 20 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), done.
To github.com:michaelliao/learngit.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

只要本地作了提交,就可以通过下面命令推送最新修改:

$ git push origin master

 (该步骤除了第1,2步之外与其他步骤无关联)克隆:远程库已经准备好了,下一步是用命令git clone克隆一个本地库(****为github帐号):

$ git clone git@github.com:****/gitskills.git
Cloning into 'gitskills'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Receiving objects: 100% (3/3), done.

 删除已关联的名为origin的远程库:

git remote rm origin

多人协作的工作模式通常是这样:(分支推送到远程)

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;

  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  3. 如果合并有冲突,则解决冲突,并在本地提交;

  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

  • 查看远程库信息,使用git remote -v

  • 本地新建的分支如果不推送到远程,对其他人就是不可见的;

  • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name

  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

  • 将回退后的版本强制推送到远程仓库 git push -f origin master
  • 如果git merge合并的时候出现refusing to merge unrelated histories的错误,原因是两个仓库不同而导致的,需要在后面加上--allow-unrelated-histories进行允许合并,即可解决

    如果还不能解决问题,就把本地的remote删除,重新git remote add添加远程仓库,再按上面的方法来,问题解决。

git pull 强制覆盖本地的代码方式,下面是正确的方法:

git fetch --all
然后,你有两个选择: git reset --hard origin/master
或者如果你在其他分支上: git reset --hard origin/<branch_name>
说明: git fetch从远程下载最新的,而不尝试合并或rebase任何东西。 然后git reset将主分支重置为您刚刚获取的内容。 --hard选项更改工作树中的所有文件以匹配origin/master中的文件。

修改远程仓库地址方式3种:

1.直接修改远程仓库地址

查看远程仓库地址

git remote -v

修改远程仓库地址

git remote set-url origin [url]

2、先删除再修改地址

git remote rm origin
git remote add origin [url]

3、直接修改配置文件

进入项目根目录
vim .git/config

找到[remote “origin”]下的url,改成新地址即可

4、通过第三方git客户端修改

以SourceTree为例,点击“设置 -> 远程仓库 -> 编辑”, 即可修改该项目下远程仓库地址, 点击“设置 -> 远程仓库 -> 编辑配置文件”, 则可如方法三修改配置文件。

最新文章

  1. JavaScript调试 - debugger语句
  2. 第7章 权限管理(2)_文件特殊权限(SUID、SGID、SBIT)
  3. Hibernate5.2之一对一主键关联(四)
  4. core
  5. UVA 550 Multiplying by Rotation (简单递推)
  6. CGContextRef一点用法
  7. 浅谈对JIT编译器的理解。
  8. No1_4.数组的基本操作_Java学习笔记
  9. poj2459 Treasure Exploration (闭包+二分)
  10. H2Database高级特性
  11. 15 ActionBar.Tab 以及保存fragment对象 代码案例
  12. 编译错误 ld: cannot find -lz
  13. RxSwift学习笔记5:Binder
  14. MyBatis最初的程序解读---API
  15. BarTender数据中的转义符序列知识讲解
  16. 可靠的推送IM消息
  17. 自己写的一个读取execl的帮助类
  18. poj 2187 Beauty Contest , 旋转卡壳求凸包的直径的平方
  19. S/4HANA生产订单增强WORKORDER_UPDATE方法BEFORE_UPDATE参数分析
  20. POJ.3468 A Simple Problem with Integers(线段树 区间更新 区间查询)

热门文章

  1. ELK太重?试试KFC日志采集
  2. 【Vulnhub】 DC-4 靶机
  3. 【AI】Pytorch_LearningRate
  4. WPF日积月累之TreeView动态绑定
  5. 05.SpringMVC之请求映射
  6. 从eclipse转idea不适记录【持续更新】
  7. String与Int类型的转换
  8. Java第一阶段项目实训
  9. redis&gt;lua脚本
  10. Ubuntu中配置tomcat