添加远程仓库地址
$ git remote add <name> <ssh url>
测试连接状况
$ ssh -T git@git.coding.net
抓取远程仓库数据到本地
这样就可以本地访问该远程仓库中的所有分支
$ git fetch [remote-name]
远程仓库删除和重命名
$ git remote rename <oldname> <newname>
$ git remote rm <remote name>
Git手动建立追踪关系
$ git branch --set-upstream master origin/next
版本回退
本地版本回退
$ git reset --hard <commitID>
此时,本地版本落后于远程版本,push强制推送
$ git push -f <remote name>
git pull
git pull
命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。
$ git pull <远程主机名> <远程分支名>:<本地分支名>
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
$ git pull origin next
git push
git push
命令用于将本地分支的更新,推送到远程主机。
$ git push <远程主机名> <本地分支名>:<远程分支名>
注意,分支推送顺序的写法是<来源地>:<目的地>,所以git pull
是<远程分支>:<本地分支>,而git push
是<本地分支>:<远程分支>。
如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。
$ git push origin master
git fetch 和pull的区别
git fetch
:从远程仓库获取最新版本到本地,不会自动merge
git fetch origin master:tmp
git diff tmp
git merge tmp
从远程获取最新版本,比较之后再合并
git pull
:从远程获取到本地,直接合并
Tips:
在向mastermerge
合并的时候,出现冲突,使用git log
显示日志的时候发现推送的用户名不同。原来是因为我同时使用了github
和coding
两个网站来管理仓库,而两个网站注的册用户名不同。
这里严重提醒,使用多个网站管理仓库的小伙伴,最好不要在config
配置文件将用户名和注册邮箱,以及远程仓库的地址写死,最好每次手动添加,才不会出现乱入的情况。