Git

作者: 一蓑烟雨任平生_cui | 来源:发表于2017-07-05 21:24 被阅读0次

分支 branch

一、关于分支

1、新建本地分支

git branch <分支名>

ps:该命令只是创建分支,不会切换。切换使用git checkout <分支名>

2、查看本地已经存在的分支

git branch 

3、查看远程分支

git branch -r

4、查看本地分支和远程分支

git branch -a

二、操作分支

1、重新命名分支

git branch -m | -M 旧分支名 新分支名

如果分支存在,使用-M强制命令

2、删除本地分支

git branch -d | -D 分支名

3、删除远程分支

git branch -d -r 分支名

删除远程分支后,还要推送到服务器才可以,还要执行下面命令

git push origin:分支名

ps: 关于分支选项解释

-d 删除

-D (--delete--force)强制删除

-f (--force)强制

-m (--move)重命名

-r (--remote)远程

-a (--all)所有

git remote

git remote 不带参数,列出已经存在的远程主机名

git remote

git remote -v 查看远程主机的网址

git remote -v

git clone

git clone url

远程主机名会自定被Git命名为origin

如果想要使用其他主机名,需要用-o选项

比如:

git clone -o  主机名 url

git fetch

git fetch 是将远程分支拉回本地。

git fetch <远程主机名>

代表将远程分支的更新拉回本地(当前分支)。

如果指定远程特定分支:

git fetch <远程主机名> <远程分支名>

如果将远程分支拉取到本地指定分支,如果本地没有,则会新建该分支。

git fetch <远程主机名> <远程分支名>:<本地分支名>

比如:将远程主机名为origin的Apollo分支拉取到本地Apollo分支(本地没有该分支)

git fetch origin Apollo:Apollo && git checkout Apollo

以上命令相当于

//新建本地分支
git branch Apollo

//切换本地分支
git checkout Apollo

//拉取远程origin主机的Apollo分支的更新
git fetch origin Apollo

git pull

git pull是取回远程主机某个分支的更新,再与本地分支合并。

git pull <远程主机名> <远程分支名>:<本地分支名>

比如取回主机名为origin的dev分支与本地的iteration合并

git pull origin dev:interation

如果远程分支与本地分支同名,则冒号后的可以省略

git pull <远程主机名> <远程分支>

如果远程分支与本地分支存在跟踪关系,则远程分支名也可以省略

git pull origin

如果当前分支只有一个追踪分支(即:本地分支只有一个同名的远程分支追踪),那么主机名都可以省略

git pull

git push

git push 是将本地文件提交到远程仓库

1、将本地指定分支提交到远程主机名为origin的远程分支上。

git push <远程主机名> <本地分支名>:<远程分支名>

2、如果省略冒号后的远程分支名,则意思是将本地分支提交到和本地分支同名的远程分支上。如果该远程分支不存在,则会被新建。

git push <远程主机名> <本地分支>

比如:

git push origin master

上面命令表示将本地的master分支提交到origin主机的远程master分支上。

3、如果省略本地分支名,则表示删除指定的远程分支(因为这等同于推送一个空的本地分支到远程分支)。

git push <远程主机名>:<远程分支>

比如:

git push origin :master
# 等同于
git push origin --delete master

上面命令表示删除origin主机的远程master分支。

git push origin HEAD:refs/for/dev

HEAD 是本地当前分支。
将当前分支提交到远程origin主机的dev分支。

refs/for/dev大致意思是提交时中间有代码审查(code review)阶段。
反正百度项目中,将代码提交到远程需要执行此命令

git push origin HEAD:refs/for/dev(远程分支名)
遇到的报错提示:

原因:
问题描述-一个非法的master,原因:本地还没有创建master,你可以执行以下git branch,会发现没有看到本地分支列表

解决方案:
如果本地没有文件,添加一个文件.
然后,git add . git commit -m “save”
再次git branch就会看到

此时就已经有了master分支了
然后就可以新建分支了。

创建同名的远程分支和本地分支后,提交代码前进行git pull时出现的信息提示:

问题解析:
git本地新建一个分支后,必须要做远程分支关联。如果没有关联, git 会在下面的操作中提示你显示的添加关联。关联目的是如果在本地分支下操作: git pull, git push ,不需要指定在命令行指定远程的分支. 推送到远程分支后, 你只要没有显示指定, git pull 的时候,就会提示该信息。

解决命令:
首先去追踪远程分支:

git branch --set-upstream-to=origin/Apollo Apollo

然后再次 git pull

git pull

-- set-upstream 去跟踪远程分支。

git撤销merge操作。如果merger后没有做任何操作,则执行以下操作:
git reflog 查看最新提交记录的版本号。

git reset --hard '版本号'

git log 查看提交记录
git log -1 HEAD 查看最近一次提交记录

相关文章

网友评论

      本文标题:Git

      本文链接:https://www.haomeiwen.com/subject/xoqchxtx.html