分布式版本控制系统之git仓库管理
首先本地生成一个key:
ssh-keygen -t rsa
cd /root/.ssh
-rw------- 1 root root 1679 6月 28 11:52 id_rsa
-rw-r--r-- 1 root root 394 6月 28 11:52 id_rsa.pub
添加公钥至gitlab
在GitHub创建一个项目仓库,如demo.
关联本地git和远程的GitHub:
使用git remote 添加远程仓库地址,选择SSH方式克隆
cd /u02 ##必须是git init 初始化仓库目录 git remote add origin git@github.com:Getingjin/demo.git
查看是否添加成功:
cat .git/config [remote "origin"] url = git@github.com:Getingjin/demo.git
说明添加成功了
如果写错地址了,可以通过下面命令修改远程仓库
git remote set-url origin git@github.com:Getingjin/demo.git
查看远程版本库信息 git remote -v
[root@cool360 u02]# git remote -v origin git@github.com:Getingjin/demo.git (fetch) origin git@github.com:Getingjin/demo.git (push)
推送远程仓库
由于远程库是新建立空的,我们在第一次推送时候,git默认是不会把本地master关联至远端的master,所以我们需要加上-u参数,这样git不但会把本地的master分支内容推送至远程仓库的master分支,并且还会将本地的master分支和远程master分支关联起来。在以后推送或者拉取时就可以简化命令。
第一次操作:
git pull origin master ##先git pull远程代码到本地 然后再上传到远端库 git push -u origin master
查看远端库内容如下:
备注:
如果推送冲突可以选择--force强行推送
git push origin --force
第一次没有数据可以选择加上--all
git push origin --all ##q全推送
克隆远程仓库
如果本地没有项目内容的话可以选择克隆远端库的内容到本地。
git clone git@github.com:Getingjin/demo.git
推本地文件到远端过程:
mkdir demo echo 1.test >> ./demo/readme.txt git add . git commit -m "create dir" git push -u origin master
如果推送冲突可以选择--force强行推送 git push origin --force 如果一次都没有推送数据,可以选择—all一次全部推送至远程服务器 git push origin --all git fetch origin //拉取主分支最新版本(可以拉取其他分支) git fetch origin dev //获取dev分支最新数据 git pull origin master #拉取主分支最新版本(可以拉取其他分支) git pull origin dev //获取dev分支最新数据
如果想重新命名一个远程仓库名称。将test重命名为rainbow,可以通过git remote rename进行修改。
注意:这同时会修改你的远程分支名字。之前引用test/master的现在会引用rainbow/master
添加新远程分支,并赋予test为远程仓库名称
git remote add test git@git-node1:root/git_demo.git [root@oldboy u02]# git remote -v origin git@github.com:Getingjin/demo.git (fetch) origin git@github.com:Getingjin/demo.git (push) 修改test名称为rainbow名称 git remote rename test te 移除远端仓库 git remote remove te
总结:
git remote add [remote] [url]#添加(关联)远程库 git remote set-url [remote] [url] #修改远程仓库 git clone [url] #克隆远程仓库项目 git remote #查看指定远程仓库命名简写 git remote –v #查看远程仓库详细信息以及名称对应URL git push -u remote master #第一次推送master分支的所有内容 git fetch remote [branch/tag] #下载远程仓库的所有变动 git pull remote [branch/tag] #拉取主分支最新版本(可以拉取其他分支) git push remote [branch/tag] --force #强行推送当前分支至远程分支,及时冲突 git push remote [branch/tag] --all #推送所有分支到远程仓库 git remote rename [oldname] [newname] #修改远程仓库名称 git remote remove [name] #删除远程仓库名称以及URL地址
嗨、骚年、快来消灭0回复。