git 的使用(6)-git远程仓库
前言:git 基本是在用git 掌握了命令基本上也就会说自己会git了。
创建github远程仓库
$ git remote add origin git@github.com:iyangyi/learngit.git
$ git push -u origin master
Counting objects: 34, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (29/29), done.
Writing objects: 100% (34/34), 3.00 KiB | 0 bytes/s, done.
Total 34 (delta 10), reused 0 (delta 0)
To git@github.com:iyangyi/learngit.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
ok,这个一大串的提示下来,我们知道成功了,我们可以去github的网站上看一下,果然,和本地是一模一样同步了。`(*∩_∩*)′
把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程。
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令,直接用:git push
就能推送到远程的master分支了。
$ git checkout dev
Switched to branch 'dev'
$ git push -u origin dev
Warning: Permanently added the RSA host key for IP address '192.30.252.131' to t
he list of known hosts.
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:iyangyi/learngit.git
* [new branch] dev -> dev
Branch dev set up to track remote branch dev from origin.
git clone
命令来克隆远程的项目,找个命令支持多种协议,https,或者ssh,都行。
$ git clone git@github.com:iyangyi/YfPHP.git
loning into 'YfPHP'...
Warning: Permanently added the RSA host key for IP address '192.30.252.130' to t
he list of known hosts.
remote: Counting objects: 212, done.
remote: Total 212 (delta 0), reused 0 (delta 0)R
Receiving objects: 100% (212/212), 211.14 KiB | 58.00 KiB/s, done.
Resolving deltas: 100% (63/63), done.
Checking connectivity... done.
$ git clone https://github.com/iyangyi/YfPHP.git
loning into 'YfPHP'...
remote: Counting objects: 212, done.
remote: Total 212 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (212/212), 211.14 KiB | 42.00 KiB/s, done.
Resolving deltas: 100% (63/63), done.
Checking connectivity... done.
这两种方式基本差不多,唯一的不同的是,如果你的用是https的方式clone的时候,你以后每次push操作都要输入账户密码。但是,如果你的ssh方式clone的话,就不需要了,因为你已经把ssh 码填到github网站上去了。所以: 推荐用ssh方式克隆。
git branch
命令看看:
$ git branch
* master
git branch-a
命令查看:
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/gh-pages
remotes/origin/develop
remotes/origin/master
默认其他的几个都是红色字体是,隐藏的, 现在的情况是本地是没有,所以我们必须创建这个分支才能修改,
git checkout -b gh-pages origin/gh-pages
命令来创建并切换到这个分支,注意后面多了一个
origin/gh-pages
表示 创建分支是基于远程的gh-pages,origin表示远程:
$ git checkout -b gh-pages origin/gh-pages
Branch gh-pages set up to track remote branch gh-pages from origin.
Switched to a new branch 'gh-pages'
$ git branch
* gh-pages
master
$ git remote add origin git@github.com:iyangyi/learngit.git
$ git clone git@github.com:iyangyi/translations.git
Cloning into 'translations'...
remote: Counting objects: 453, done.
remote: Compressing objects: 100% (233/233), done.
Receiving oemote: Total 453 (delta 217), reused 448 (delta 215)
/453), 2.05 MiB
Receiving objects: 100% (453/453), 2.07 MiB | 109.00 KiB/s, done.
Resolving deltas: 100% (217/217), done.
Checking connectivity... done.
Checking out files: 100% (110/110), done.
$ git remote -v
origin git@github.com:iyangyi/translations.git (fetch)
origin git@github.com:iyangyi/translations.git (push)
所以正常的我们在这个项目中增删改 用 git push origin master和 git pull完成提交和更新
$ git remote add upstream git@github.com:oldratlee/translations.git
这样就关联好了。就有2个remote 源了。用 git remove 命令再看一下:
$ git remote
origin
upstream
origin 是我自己fork出来的地址源。upstream 是它的parent的地址源。
$ git fetch upstream
remote: Counting objects: 39, done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 39 (delta 20), reused 37 (delta 18)
Unpacking objects: 100% (39/39), done.
From github.com:oldratlee/translations
* [new branch] master -> upstream/master
3. 将upstream 的 master 分支的改动用 git merge 合并过来
$ git merge upstream/master
Auto-merging README.md
Merge made by the 'recursive' strategy.
10-things-you-didnt-know-about-java/README.md | 551 +++++++++++++++++++++
.../for-you-my-dear-coworkers.jpg | Bin 0 -> 92248 bytes
.../java-mystery.jpg | Bin 0 -> 82217 bytes
README.md | 7 +
bash-3-man/README.md | 2 +-
git-workflows-and-tutorials/README.md | 2 +-
6 files changed, 560 insertions(+), 2 deletions(-)
create mode 100644 10-things-you-didnt-know-about-java/README.md
create mode 100644 10-things-you-didnt-know-about-java/for-you-my-dear-coworker
s.jpg
create mode 100644 10-things-you-didnt-know-about-java/java-mystery.jpg
$ git push -u origin master
Counting objects: 50, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (42/42), done.
Writing objects: 100% (42/42), 179.36 KiB | 0 bytes/s, done.
Total 42 (delta 22), reused 0 (delta 0)
To git@github.com:iyangyi/translations.git
76bd644..bc4085a master -> master
Branch master set up to track remote branch master from origin.
记住,别 push 到 upstream 上了。因为,这是别人的,你没权限!
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
;
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
可以使用命令git pull origin master
获取远程的更新
要克隆一个仓库,首先必须知道仓库的地址,然后使用用git clone
命令克隆。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
要同步fork源头的代码到自己的,用
1.git remote add upstream git@github.com:oldratlee/translations.git
;
2.git fetch upstream
;
3.git merge upstream/mester
;
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)