设置了公钥,就能上传和下载了

  • 通过 git pull && git push && git clone

1. 两行命令

第0步 准备工作

  1. 新建GitHub Repo(Repositories),任意Repository name
  2. 在快速设置中,默认SSH(勿选HTTPS,坑,每次要输密码,不方便,骂死你)
  3. 复制页面里的代码(关掉翻译) 「复制SSH 地址(注意是以git开头的而不是HTTPS地址)」

已有本地仓库

1
git remote add origin git@github.com:yourName/yourRepoName.git
  • 告诉本地仓库,对应到远程仓库的地址,仓库名是origin

第1步 第一次上传:

1
git push -u origin master
  • -u upstream 第一次上传时,记下本次匹配,推到origin仓库的master分支
  • -u origin master只有第一次需要写,以后直接git push就好了
  • master(本地)->master(GitHub)
  • 刷新远程仓库页面就可以看到上传的内容了

没有本地仓库,完全新建时

1
2
3
4
5
6
echo "# RepoName" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:yourName/yourRepo Name.git
git push -u origin master
  • git push 上传的是本地仓库提交过的一个分支,并不是当前看到的代码

  • 可以提交多个分支:

1
2
3
4
5
6
git branch x
git checkout x
## ... change sth ...
git add .
git commit -am "log"
git push -u origin x

注意要加-u,因为是第一次上传此分支* [new branch]

  • x(本地)->x(GitHub)

  • 类似我要查看分支:git branch,我要查看远程仓库:git remote

小结

  1. 关联你新建的远程仓库

    1
    
    git remote add origin git@xxxx
  1. 初始提交到远程仓库

    1
    
    git push -u origin master

eg. 比如有个repo2仓库

1
2
git remote add repo2 gti@github.com:yourName/git-demo-02.git
git push -u repo2 master

不可直接git pull,默认去origin仓库;被![reject],这时需要将repo2仓库的master分支复制到当前的master 分支:

1
2
git checkout master
git pull repo2 master:master

master -> repo2/master

1
git push -u repo2 master

被拒绝合并,因为没有关联,可以谨慎使用强制合并:

1
git push -u repo2 master -f

小心同事打你

  1. 如何上传其他分支
  • [x] 方法一:

    1
    
    git push origin x:x

git push 仓库名 分支名(源头:本地x):分支名(目标:远程x)

  • [x] 方法二:

    1
    2
    
    git checkout x
    git push -u origin x
  • git push 仓库名 分支名
  • GitHub远程仓库是本地仓库(分支)的一个拷贝而已(备份.git/)
  • 本地仓库在硬盘里的位置(相对路径)不影响远程仓库
  • 远程的Repo(Repositories)相当于在GitHub上的一个文件夹,git clone 下来的文件夹名就是Repo的名称

  • 类似我要查看分支:git branch,我要查看远程仓库:git remote

  • 区分origin和远程仓库的名称:

  • GitHub 里面的 origin 到底代表啥意思



·未完待续·

参考文章

相关文章