origin 是默认的远程版本库名称
你可以在 .git/config 之中进行修改
下面的方法,不能解决,远程代码库与第三方人员合并后的回滚问题,见最后面。
git常用命令:
1.
切换分支
git checkout master //表示切换分支到master
2.
创建分支branch
git branch branch_name //创建分支
3.pull拉取
git pull origin 相当于是从远程获取最新版本并merge到本地
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。
$ git pull <远程主机名> <远程分支名>:<本地分支名>
比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。
$ git pull origin next:master
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
$ git pull origin next
如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。
$ git pull origin
上面命令表示,本地的当前分支自动与对应的origin主机”追踪分支”(remote-tracking branch)进行合并。
如果当前分支只有一个追踪分支,连远程主机名都可以省略。
git pull
4.
push推送到远程代码库
$ git push <远程主机名> <本地分支名>:<远程分支名> //顺序与git pull相反。
git push origin master 的意思是 git push origin master:master (将本地的 master 分支推送至远端的 master 分支,如果没有就新建一个)
4.1 如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。
$ git push origin :master
4.2 如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。
$ git push origin master
上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。
【远程代码库回滚】:
这个是重点要说的内容,过程比本地回滚要复杂
原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支
操作步骤:
1、git checkout the_branch //切换本地分支到 the_branch
2、git pull //拉取远端分支the_branch的最新版本,并合并到本地。
3、git branch the_branch_backup //备份一下这个分支当前的情况 //创建一个新的分支 名字为the_branch_backup
4、git reset --hard the_commit_id //把the_branch本地回滚到the_commit_id
5、git push origin :the_branch //删除远程 the_branch//将本地的一个空分支,推送到远程分支上,
6、git push origin the_branch //用回滚后的本地分支重新建立远程分支
7、git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支
一般情况下,不需要上述的7步都走完。因为,一般情况下,我们本地的分支和远端的分支是有追踪关系的。
1.备份本地分支
2.回滚本地分支
3.删除远程分支
4.将回顾后的本地分支,推送到远端。
5.删除备份分支。
这样的操作后,确实能够回滚远程的代码库,但是这样的回滚有个很严重的问题,即,将远程代码库回滚到local3写入后。
本地的local1写入第二次 这个分支就没有。本地的分支就是local3写入 这个分支了。
即使备份指定的版本也依然无法解决这个问题。比如备份local1这个版本,但是
远程代码库回顾后,备份的local1分支也变成了local3写入 分支了
local1 写入第二次依然 丢失了。