Git工作/面试必知必会操作-命令行篇(三)

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 文件/文件夹名称

Git工作/面试必知必会操作-命令行篇(三)

加上 -n 参数,执行命令时,不会删除任何文件,而是展示此命令要删除的文件列表预览

  • 确认后删除
git rm -r --cached 文件/文件夹名称

Git工作/面试必知必会操作-命令行篇(三)

  • 提交到本地并推送到远程服务器
git commit -m "提交说明"

Git工作/面试必知必会操作-命令行篇(三)

git push origin master

Git工作/面试必知必会操作-命令行篇(三)


上一篇:Nginx一键安装脚本


下一篇:安装zabbix agent shell 脚本