git clone ssh://10088/xesoa/data/data.git
git checkout -b teacher-II origin/teacher-II
git add .
git commit -m "xxxx"
git push
=============================================================
如何使用git将remote master上的内容merge 到自己的开发分支上 & 以及将自己分支的内容merge到remote master上
remote master上的内容merge 到自己的开发分支上 (上班第一件事)
1. 切换到master分支
git checkout master
2. 将remote master同步到local master
git pull origin master
3. 切换到的local开发分支
git checkout dev_xxx
4. 合并 local master 到 local的开发分支
git merge master
5.推送更新到gitlab,使gitlab同步更新显示
git push origin dev_xxx
将自己分支的内容merge到remote master上 (下班最后一件事)
1. 切换到 local 开发分支, 并提交到 local 开发分支
git checkout dev_xxx
git status
git add .
git commit -m "@@@"
2. 将remote master 的更新下载到本地
git checkout master
git pull origin masterr
3. 将 local 开发分支merge到 local master
git merge dev_xxx
4. 将 local master 推送更新到gitlab,使gitlab remote master同步更新显示
git push origin master
5. 将 local dev_xxx 推送更新到gitlab,使gitlab remote dev_xxx同步更新显示
git checkout dev_xxx
git push origin dev_xxx
PS: 这个操作确实很复杂, 不清楚有没有简单的方式。等弄明白git的原理了,在回来更新。
第二部分的最后一步,可能不需要。
===================================
新建完全空白的本地分支
否则在哪个分支环境下新建checkout 新分支都会导致将当前分支的记录copy到新建的分支上。具体步骤如下
1 git checkout --orphan clean_tree2 #新建空白本地分支clean_tree2
2 git rm -rf .
3 git pull origin test2 #之后想在哪个分支基础上修改就将哪个分支pull过来
4 git branch --set-upstream-to origin/test2 clean_tree2
===================================
git撤销工作区和缓存区修改
“git checkout -- 待回退的文件” 撤销的是工作中文件的修改,
而“git reset HEAD -- 待回退的文件” 撤销的是暂存区中文件的修改。
git pull命令解析:
以下是一些示例 -
$ git pull <远程主机名> <远程分支名>:<本地分支名>
Shell
比如,要取回origin
主机的next
分支,与本地的master
分支合并,需要写成下面这样 -
$ git pull origin next:master
Shell
如果远程分支(next
)要与当前分支合并,则冒号后面的部分可以省略。上面命令可以简写为:
$ git pull origin next
Shell
上面命令表示,取回origin/next
分支,再与当前分支合并。实质上,这等同于先做git fetch
,再执行git merge
。
$ git fetch origin
$ git merge origin/next
Shell
在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone
的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master
分支自动”追踪”origin/master
分支。
Git也允许手动建立追踪关系。
$ git branch --set-upstream-to origin/next master
Shell
上面命令指定本地master
分支追踪远程origin/next
分支。
如果当前分支与远程分支存在追踪关系,git pull
就可以省略远程分支名。
$ git pull origin
Shell
上面命令表示,本地的当前分支自动与对应的origin
主机”追踪分支”(remote-tracking branch)进行合并。
如果当前分支只有一个追踪分支,连远程主机名都可以省略。
$ git pull
=====================================================================
删除远程本地分支:
(1)删除远程分支
使用命令 git push origin --delete Chapater6 可以删除远程分支Chapater6
再次使用命令 git branch -a 可以发现,远程分支Chapater6已经被删除。
(2)删除本地分支
使用命令,git branch -d Chapater8 可以删除本地分支(在主分支中)
========================================================================
git查看本地分支关联(跟踪)的远程分支之间的对应关系,本地分支对应哪个远程分支:
git branch -vv
===========================================================================
git在本地新建远程分支和删除
现在我在master分支上,工作目标是干净的,也没有需要commit的:
$ git branch
* master
release
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
新建远程分支
新建一个本地分支:
注意很重要的一点,新建分支的时候所在的分支就是你新建分支的本地代码库的内容。
在这里是在master分支上创建的,如果你想要从develop分支上创建分支,就需要先切换到develop分支上再创建。
$ git checkout -b dbg_lichen_star
查看一下现在的分支状态:
$ git branch
* dbg_lichen_star
master
release
星号(*)表示当前所在分支。现在的状态是成功创建的新的分支并且已经切换到新分支上。
把新建的本地分支push到远程服务器,远程分支与本地分支同名(当然可以随意起名):
$ git push origin dbg_lichen_star:dbg_lichen_star
使用git branch -a
查看所有分支,会看到remotes/origin/dbg_lichen_star
这个远程分支,说明新建远程分支成功。
删除远程分支
删除分支的时候不能停留在要删除的分支上!!
方法1
git branch -r -D origin/release
我比较喜欢的简单方式,推送一个空分支到远程分支,其实就相当于删除远程分支:
$ git push origin :dbg_lichen_star
也可以使用:
$ git push origin --delete dbg_lichen_star
这两种方式都可以删除指定的远程分支
git后修改了本地文件,如何重新还原未修改状态
单个文件 : git checkout + 文件名
整个目录 :git checkout .(这个点要加上的)
下载远程分支
//查看远程分支
git branch -r
//创建本地分支并关联
git checkout -b 本地分支 origin/远程分支
//已有本地分支创建关联
git branch --set-upstream-to origin/远程分支名 本地分支名
//拉取
git pull