Git远程仓库
git 如何获取某一个特定的tag的源码以及分支切换
1、git clone 下载源码
2、git tag 列出所有版本号
3、git checkout +某版本号 # git checkout -b 1.0.0 origin/1.0.0
查看所有分支:git branch -a
前面带*号的代表你当前工作目录所处的分支
git branch --set-upstream-to=origin/master mymaster 分支 mymaster 设置为跟踪来自 origin 的远程分支 master
或者直接克隆某个分支拉取想要的代码 # git clone -b 1.0.0 git@10.35.33.29:xiaoban/server-api/xiaoban-server.git
----------------------------------------------------------------------------------------------------
Linux下保存git账号密码:
一、通过文件方式
1.在~/下, touch创建文件 .git-credentials, 用vim编辑此文件,输入内容格式:
touch .git-credentials vim .git-credentials
然后输入: https://{username}:{password}@github.com
比如 https://account:password@github.com
2. 在终端下执行
git config --global credential.helper store
3. 可以看到~/.gitconfig文件,会多了一项:
[credential] helper = store
4.OK
通常来说,Git协议下载速度最快,SSH协议用于需要用户认证的场合
只不过Git Hub/Lab,会要求连接之前先添加SSH密钥 id_rsa.pub :You won't be able to pull or push project code via SSH until you add an SSH key to your profile
向你的远程git仓库加入你的公钥 (注:gitea、gitlab、github一般在用户的设置页面添加,如果远程是通过git init初始化的项目,请追加到远程机器的~/.ssh/authorized_keys 文件中)
测试你的ssh-key是否添加成功:
# ssh -T git@10.35.33.29
Welcome to GitLab, Wjoyxt!
--------------------------------------------------------------------------------------------------------------
1、如果本地没有生成密钥的话,先生成SSH KEY
# ssh-keygen -t rsa -C "wjoyxt@163.com"
2、登陆GitHub,打开“Account settings”,“SSH and GPG Keys”页面,然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容。(可以提交多个KEY)
3、登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库。
在Repository name填入learngit
,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库
4、把一个已有的本地仓库与Git Hub的learngit关联,添加后远程库的名字就是origin
,这是Git默认的叫法,也可以改成别的,但是origin
这个名字一看就知道是远程库
# git remote add origin git@github.com:wjoyxt/learngit.git
查看远程库信息
# git remote -v
5、把本地库的所有内容推送到远程库上,把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程。
# git push -u origin master
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样
6、从现在起,只要本地作了提交,就可以通过命令:
# git push origin master
把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!
布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!
7、从远程库克隆。Git支持多种协议,包括https
,但通过ssh
支持的原生git
协议速度最快
# git clone git@github.com:wjoyxt/learngit.git
你也许还注意到,GitHub给出的地址不止一个,还可以用https://github.com/wjoyxt/learngit.git
这样的地址。实际上,Git支持多种协议,默认的git://
使用ssh,但也可以使用https
等其他协议。
-------------------------------------------------------------------------------------------------------------------------------------------------------------
因为git本身是分布式版本控制系统,可以同步到另外一个远程库,当然也可以同步到另外两个远程库。
使用多个远程库时,我们要注意,git给远程库起的默认名称是origin
,如果有多个远程库,我们需要用不同的名称来标识不同的远程库。
仍然以learngit
本地库为例,我们先删除已关联的名为origin
的远程库:
git remote rm origin
然后,先关联GitHub的远程库:
git remote add github git@github.com:wjoyxt/learngit.git
注意,远程库的名称叫github
,不叫origin
了。
接着,再关联码云的远程库:
git remote add gitee git@gitee.com:wjoyxt/learngit.git
同样注意,远程库的名称叫gitee
,不叫origin
。
现在,我们用git remote -v
查看远程库信息,可以看到两个远程库:
# git remote -v
gitee git@gitee.com:wjoyxt/learngit.git (fetch)
gitee git@gitee.com:wjoyxt/learngit.git (push)
github git@github.com:wjoyxt/learngit.git (fetch)
github git@github.com:wjoyxt/learngit.git (push)
如果要推送到GitHub,使用命令:
git push github master
如果要推送到码云,使用命令:
git push gitee master
这样一来,我们的本地库就可以同时与多个远程库互相同步