git分支总结

来源:互联网 发布:龙渊网络手游 编辑:程序博客网 时间:2024/05/17 14:28

git push origin与git push -u origin master的区别

首先要明确origin是什么意思?
origin 其实就是相当于远程仓库的一个别名,使用命令git remote -v就可以查看orgin的含义

git push origin

上面命令表示,将当前分支推送到origin对应分支。 如果当前分支只有一个追踪分支,那么主机名都可以省略。

 git push -u 

如果当前分支与多个仓库存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push。

git push origin master:master 等同于git push origin master

在local repository中找到名字为master的branch,使用它去更新remote repository下名字为master的branch,如果remote repository下不存在名字是master的branch,那么新建一个

git push origin HEAD:refs/for/mybranch

HEAD指向当前工作的branch,master不一定指向当前工作的branch,所以我觉得用HEAD还比master好些

 git push -u origin master 等同于 git push -u origin master:master

上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。

更新本地代码

git fetch

拉去远程仓库的数据,语法为 git fetch [remote-name]

git pull = git fetch + git mergegit pull --rebase = git fetch + git rebase

fetch 会拉去最新的远程仓库数据,但不会自动到当前目录下,要自动合并

更新冲突处理办法

1、最简单的方法就是直接忽略本地修改

git reset --hard origin/master

忽略本地修改,强行更新。有时候会发生版本冲突,使用reset会指向上次更新的版本,忽略本次修改,使代码库中的文件完全覆盖本地工作版本。

git reset --hard HEAD~3

会将最新的3次提交全部重置,就像没有提交过一样。

2、冲突合并手动修改冲突

 git stash

先将本地修改存储起来

git pull

pull内容

git stash pop stash@{0}

还原暂存的内容

最后打开项目,手动改动冲突代码中想要保留的部分。

提交代码

 git add .        // 提交你的修改添加当前修改的文件到暂存区 git commit -s    //-s输出详细信息 提交你的修改 git push origin dev //推送你的更新到远程服务器

其他常用命令

git remote show origin

查看远程仓库的信息

git status

查看当前分支的状态

git branch workspace

创建一个分支

git chekcout workspace

切换工作目录到workspace

git chekcout –b workspace

将上面的命令合在一起,创建workspace分支并切换到workspace

git merge workspace

合并workspace分支,当前工作目录为master

git diff

此命令比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异
也就是修改之后还没有暂存起来的变化内容