git学习笔记2——远程仓库

设置

第1步:创建SSH Key**

用户主目录下(C:\Users\lzj)看有没有.ssh目录,.ssh目录下有没有SSH Key的秘钥对id_rsa(私钥文件)和id_rsa.pub(公钥文件), 私钥不能泄露,公钥可以告诉任何人。

若无,使用Git Bash创建SSH Key:

ssh-keygen -t rsa -C “youremail@example.com”	#一路回车,使用默认值即可
第2步:往GitHub中添加ssh key

登陆GitHub,打开“Account settings”,“SSH Keys”页面
Add SSH Key——填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。

本地Git仓库和GitHub远程仓库间的传输是通过SSH加密的,每台电脑的git有一个ssh,只有将这个ssh绑定到GitHub中,才能往GitHub远程仓库中推送本地仓库,允许在GitHub中添加多个ssh,即允许多台电脑向同一个GitHub账号推送

将本地仓库与一个远程仓库关联
git remote add origin git@github.com:账户名/仓库名.git #本地库与远程库关联,且远程库起名为origin

git remote add github1 git@github.com:账户名/仓库名.git #远程库可以自己起名,如github1 
    
git remote rm origin	#删除和origin库的关联

查看关联的远程库信息

git remote		#查看远程库信息
git remote -v	#查看远程库详细信息,会出现远程库抓取fetch和推送push地址
推送本地库到远程仓库:

远程库与本地库其实是一样的,只是存了一份到网上,方便随处取而已

git push -u origin master	#将本地master分支所有本地commit的东西全部推送到远程仓库origin的master

git push -u origin dev		#将本地dev分支上已经commit的东西全部推送到远程仓库origin的dev

git push origin master	   #-u表示对应的分支关联起来,以后不加-u推送的时候会自动关联

git push gitHub1 master		#推送master到远程库github1的master

克隆远程库

 git clone git@github.com:Liangzhijian1996/a-byte-of-python.git #克隆远程库到本地成为一个本地库,并自动关联起来

抓取分支

从远程库clone时,默认情况下,只能看到本地库的master分支;要在dev分支上开发,就必须抓取远程origindev分支到本地库

git pull
git checkout -b dev origin/dev		#抓取对应的远程库的dev分支来创建本地库的dev分支
git fetch  #相当于是从远程获取最新到本地,不会自动merge
git pull   #相当于是从远程获取最新版本并merge到本地
git pull = git fetch && git merge	
git rebase 		#把本地未push的分叉提交历史整理成直线,使得我们在查看历史提交的变化时更容易
git pull --rebase = git fetch && git rebase	 #从远程获取最新到本地,自动merge,然后整理时间线
git pull <远程仓库名> <远程分支名>:<本地分支名>#抓取origin仓库next分支,与本地的master分支合并
git pull <远程仓库名> <远程分支名>	#与当前分支合并

git branch --set-upstream 本地分支名  远程仓库名/远程分支名 	#有时pull前需建立远程本地分支追踪关系
git pull origin		#若已经存在追踪关系,可省略分支名
git pull 			#若当前分支只存在一个追踪关系,直接git pull

多人协作

多人协作的工作模式(或多电脑)

git push origin dev	#每个人都向远程库的dev推送自己的代码	  

别人已经向origin/dev分支推送了他的提交,而碰巧你也对同样的文件作了修改,那么就会出现冲突,推送失败。先用git pull把远程库最新的提交从origin/dev并且与本地库对应分支合并,再推送

git branch --set-upstream-to=origin/dev dev	#设置本地dev分支与远程origin/dev分支的链接
git pull		#抓取远程库分支的最新提交与本地库合并。有时会合并失败,那么需要手动解决冲突然后本地提交
git push origin dev		#再push到远程库的dev

你可能感兴趣的:(git,git)