Git学习笔记3-远程仓库

时间:2023-01-01 12:18:34

Git学习笔记3-远程仓库

1.添加远程仓库

$ git remote add [shortname] [url] 
$ git remote add origin https://github.com/Mike199201/GitFile  #origin是仓库的命名

2.从远程仓库拉取数据

2.1 git fetch(拉取)

$ git fetch [remote-name]    #将远程仓库最新内容全部拉到本地暂存区respository,用户检查了以后决定是否合并到本地工作区workspace
$ git fetch [remote-name] <分支名> #将远程仓库特定分支最新内容拉到本地暂存区respository,用户检查了以后决定是否合并到本地工作区workspace

2.2 git pull(拉取并合并)

$ git pull <远程主机名> <远程分支名:本地分支名>  
$ git pull origin master:master  #从远程origin仓库拉取master分支最新的数据到本地master分支的工作区,并完成合并
相当于:
$ git fetch origin master       #从远程主机的master分支拉取最新内容
$ git merge FETCH_HEAD     #将拉取下来的最新内容合并到当前所在的分支中

2.3 git clone(克隆)

$ git clone <地址>        #克隆远程仓库到本地,并在本地默认创建一个master分支
$ git clone -b 分支名 <地址>  #克隆远程仓库的指定分支到本地

3.推送数据到远程仓库

$ git push [remote-name] [branch-name]

例:

$ git push origin master    #推送数据到远程仓库origin的master分支

3.1 如果是第一次推送

需要加上-u这个参数设置默认远程名和分支名:

$ git push -u origin master  #加上-u选项指定了默认远程仓库主机为origin,后面就可以直接使用git push 后面不需加参数

3.2 如果产生冲突

如果远程仓库与本地仓库都有文件修改,执行git push则会产生冲突:

Git学习笔记3-远程仓库

这时,需要在推送之前先手动解决冲突,解决冲突的办法有下面两种:

方法1:

1) $ git pull origin master        #从远程拉取数据到本地并进行合并
2) $ git status               #查看那个文件存在冲突
Git学习笔记3-远程仓库
这时,打开存在冲突的文件可以看到类似下面的信息:

   Git学习笔记3-远程仓库

  也可以使用git diff 指令查看合并后文件与本地仓库文件的差异:
3) $ git diff  #查看本地合并后的文件与本地仓库最新文件差异打开相应文件手动进行修改:
   Git学习笔记3-远程仓库
修改后提交到本地仓库,:
4)$ git add readme.txt & git commit -m '解决冲突'  #手动完成修改后提交到本地仓库
5)& git push origin master               #推送到远程仓库 

方法2:

$ git fetch origin master:temp  #从远程origin仓库的master分支拉取到本地并新建一个temp分支
$ git diff temp           #比较master分支和temp分支的区别
$ git merge temp          #合并temp分支到master分支
$ git branch -d temp     #删除temp
$ git push origin master    #推送数据到远程仓库origin的master分支 

4.查看远程仓库信息

$ git remote    #列出所有远程仓库简写
$ git remote -v  #列出所有远程仓库简写及URL
$ git remote show [remote-name]  #查看指定远程仓库详细信息

5.远程仓库的删除和重命名

$ git remote rename origin pb  #将名称为origin的仓库修改为pb
$ git remote rm origin      #删除远程仓库origin
$ git push origin :temp      #删除远程仓库分支