2.3 远程仓库
创建SSH Key
$ ssh-keygen -t rsa -C "youremail@example.com"
关联远程仓库
$ git remote add origin https://github.com/username/repositoryname.git
推送到远程仓库
$ git push -u origin master
-u
表示第一次推送master分支的所有内容,此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改。
遇到的坑
fatal: The upstream branch of your current branch does not match the name of your current branch. To push to the upstream branch on the remote, use git push origin HEAD:release/10.0 To push to the branch of the same name on the remote, use git push origin HEAD
与本地建立联系的是远程的 release 分支,因此git 报错会提示应该这么把代码推到远程的特定分支
git push origin HEAD:release/10.0
从远程克隆
在使用git来进行版本控制时,为了得一个项目的拷贝(copy),我们需要知道这个项目仓库的地址(Git URL).
Git能在许多协议下使用,所以Git URL可能以ssh://, http(s)????/, git://,或是只是以一个用户名(git 会认为这是一个ssh 地址)为前辍.
有些仓库可以通过不只一种协议来访问
例如,Git本身的源代码你既可以用 git:// 协议来访问:
git clone git://git.kernel.org/pub/scm/git/git.git
也可以通过http 协议来访问:
git clone http://www.kernel.org/pub/scm/git/git.git
git://协议较为快速和有效,但是有时必须使用http协议,比如你公司的防火墙阻止了你的非http访问请求.如果你执行了上面两行命令中的任意一个,你会看到一个新目录: ‘git’,它包含有所的Git源代码和历史记录.
在默认情况下,Git会把"Git URL"里最后一级目录名的’.git’的后辍去掉,做为新克隆(clone)项目的目录名: (例如. git clone http://git.kernel.org/linux/kernel/git/torvalds/linux-2.6.git 会建立一个目录叫’linux-2.6’)
另外,如果访问一个Git URL需要用法名和密码,可以在Git URL前加上用户名,并在它们之间加上@符合以表示分割,然后执行git clone命令,git会提示你输入密码。
示例
git clone v_shishusheng@http://www.kernel.org/pub/scm/git/git.git
这样将以作为v_shishusheng用户名访问http://www.kernel.org/pub/scm/git/git.git,然后按回车键执行git clone命令,git会提示你输入密码。
另外,我们可以通过-b 来指定要克隆的分支名,比如
$ git clone -b master2 …/server .
表示克隆名为master2的这个分支,如果省略-b 表示克隆master分支。
$ git clone https://github.com/usern/repositoryname.git
删除远程仓库文件
可能某些不需要的目录上传到远程仓库去了,下面开始操作
- 预览将要删除的文件
git rm -r -n --cached 文件/文件夹名称
加上 -n 参数,执行命令时,不会删除任何文件,而是展示此命令要删除的文件列表预览
- 确认后删除
git rm -r --cached 文件/文件夹名称
- 提交到本地并推送到远程服务器
git commit -m "提交说明"
git push origin master