git branch

来源:互联网 发布:阿里云网站建设教程 编辑:程序博客网 时间:2024/05/09 11:54

1.远程分支就是本地分支push到服务器上的时候产生的。比如master就是一个最典型的远程分支(默认)。
1$: git push origin master
除了master之外,我们还可以随便创建分支,然后push到服务器上去。例如:
1$: git push origin develop
2Counting objects: 27, done.
3Delta compression using up to 2 threads.
4Compressing objects: 100% (15/15), done.
5Writing objects: 100% (15/15), 7.30 KiB, done.
6Total 15 (delta 10), reused 0 (delta 0)
7To git@search.ued.taobao.net:projects/search.git
8   1b95a57..779dbe1  develop -> develop
2.远程分支和本地分支需要区分,所以,在从服务器上拉取特定分支的时候,需要指定本地分支名字。
1$: git checkout --track origin/develop
注意该命令由于带有--track参数,所以要求git1.6.4以上!
这样git会自动切换到develop分支。

3.同步本地远程分支:
1$: git fetch origin
4.提交分支数据到远程服务器:
1$: git push origin <local_branch_name>:<remote_branch_name>
例如:
1$: git push origin develop:develop
当然如果当前在develop分支下,也可以直接
1$: git push
5.删除远程分支develop:
1$: git push origin :develop


第一次创建的时候服务器上面没有任何分支(使用git init --bare).那么在本地创建了之后需要推送一个分支到服务器上面。

即:第一次push必须这样写 git push origin master:master

git checkout master         //取出master版本的head。
git checkout tag_name    //在当前分支上 取出 tag_name 的版本
git checkout  master file_name  //放弃当前对文件file_name的修改

 git checkout branch_name tag_name //取指定分支branch_name的tag_name的版本

git checkout  commit_id  file_name  //取文件file_name的 在commit_id是的版本。

commit_id为 git commit 时的sha值。

 

列出某一个commit ID(XXXXXXXXXXXXXXXX) 对应的补丁:

   $ git log -1 -p XXXXXXXXXXXXXXXX
   $ git format-patch -1 XXXXXXXXXXXXXXXX <===-1不可省略
        --stdout         //打印到标准输出
   $ git show XXXXXXXXXXXXXXXX
   $ git diff-tree -p XXXXXXXXXXXXXXXX


$ git push origin test:master         // 提交本地test分支作为远程的master分支
$ git push origin test:test              // 提交本地test分支作为远程的test分支

如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。

$ git push origin :test              // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心

远程分支拉取

运行 git fetch,可以将远程分支信息获取到本地,再运行 git checkout -b local-branchname origin/remote_branchname  就可以将远程分支映射到本地命名为local-branchname  的一分支。 


远程分支的删除

假设这样一种情况:
1. 我创建了本地分支b1并pull到远程分支 origin/b1
2. 其他人在本地使用fetch或pull创建了本地的b1分支;
3. 我删除了 origin/b1 远程分支;
4. 其他人再次执行fetch或者pull并不会删除这个他们本地的 b1 分支,运行 git branch -a 也不能看出这个branch被删除了,如何处理?

使用下面的代码查看b1的状态:

?View Code BASH
123456789101112
# git remote show origin* remote origin  Fetch URL: git@github.com:xxx/xxx.git  Push  URL: git@github.com:xxx/xxx.git  HEAD branch: master  Remote branches:    master                 tracked    refs/remotes/origin/b1 stale (use 'git remote prune' to remove)  Local branch configured for 'git pull':    master merges with remote master  Local ref configured for 'git push':    master pushes to master (up to date)

这时候能够看到b1是stale的,使用 git remote prune origin 可以将其从本地版本库中去除。

更简单的方法是使用这个命令,它在fetch之后删除掉没有与远程分支对应的本地分支:

?View Code BASH
1
git fetch -p


原创粉丝点击