1.Git怎么推送本地分支到远程分支上面去?
git checkout local_branch
先切换到本地分支local_branch
git push origin local_branch:remote_branch
这个操作,local_branch必须为你本地存在的分支,remote_branch为远程分支,如果remote_branch不存在则会自动创建分支。
2.Git中从远程的分支获取最新的版本到本地方式如下
1. 查看远程仓库$ git remote -v
origin git@cf8-All-Series:cf8/server.git (fetch)
origin git@cf8-All-Series:cf8/server.git (push)
从上面的结果可以看出,远程仓库是origin
方式一:
1,从远程获取最新版本到本地
$ git fetch origin master
From https://github.com/abc/android
* branch master -> FETCH_HEAD
zlu@DHFJGR /abc/lient/android (master)
$ git fetch origin master 这句的意思是:从远程的origin仓库的master分支下载代码到本地的origin master
2. 比较本地的仓库和远程参考的区别
$ git log -p master.. origin/master
zlu@DHFJGR /abc/lient/android (master)
因为我的本地仓库和远程仓库代码相同所以没有其他任何信息
3. 把远程下载下来的代码合并到本地仓库,远程的和本地的合并
$ git merge origin/master
Already up-to-date.
zlu@DHFJGR /abc/lient/android (master)
我的本地参考代码和远程代码相同,所以是Already up-to-date
方式二:(比方法一安全)
1. 从远程获取最新版本到本地
$ git fetch origin master:temp
From https://github.com/abc/android
* [new branch] master -> temp
zlu@DHFJGR /abc/lient/android (master)
git fetch origin master:temp 这句命令的意思是:从远程的origin仓库的master分支下载到本地并新建一个分支temp
2.比较本地的仓库和远程参考的区别
$ git diff temp
zlu@DHFJGR /abc/lient/android (master)
命令的意思是:比较master分支和temp分支的不同
由于我的没有区别就没有显示其他信息
3. 合并temp分支到master分支
$ git merge temp
Already up-to-date.
zlu@DHFJGR /abc/lient/android (master)
由于没有区别,所以显示Already up-to-date.
合并的时候可能会出现冲突,有时间了再把如何处理冲突写一篇博客补充上。
4.如果不想要temp分支了,可以删除此分支
$ git branch -d temp
Deleted branch temp (was d6d48cc).
zlu@DHFJGR /abc/lient/android (master)
如果该分支没有合并到主分支会报错,可以用以下命令强制删除git branch -D <分支名>
总结:方式二更好理解,更安全,对于pull也可以更新代码到本地,相当于fetch+merge,多人写作的话不够安全。
如有错误请指正