主机名 | IP | 角色 |
---|---|---|
git1 | 192.168.100.130 | 服务端 |
git2 | 192.168.100.131 | 客户端 |
git的部署及一些基本的使用:https://blog.youkuaiyun.com/Bilise/article/details/104912898
需求:
1.查看远程分支、查看本地分支、查看全部分支;
2.创建本地分支devserver1-6,创建dev分支并立即切换;
3.切换回主分支,并查看当前所在分支;
4.在分支devserver1里创建一个test.txt,并切换回主分支查看是否存在这个test.txt文件;
5.合并devserver1和主分支,查看主分支里是否有test.txt文件;
6.删除本地分支devserver1,查看剩下所有分支;
7.推送本地分支devserver2-6到远端服务器,并查看是否成功;
8.运用三种办法删除远端分支devserver2-4;
9.在远程创建分支linuxgit,并拉取分支到本地客户端服务器上;
10.如何快速有效的拉取远程服务端的全部分支;
练习:
1.查看远程分支、查看本地分支、查看全部分支;
[root@git2 project]# git branch -r //远程分支
origin/master
[root@git2 project]# git branch //本地分支
* master
[root@git2 project]# git branch -a //全部分支
* master
remotes/origin/master
问题:
[root@git2 ~]# git branch
fatal: Not a git repository (or any of the parent directories): .git
解决方法:
[root@git2 ~]# git init
2.创建本地分支devserver1-6,创建dev分支并立即切换;
[root@git2 project]# git branch deserver1
[root@git2 project]# git branch deserver2
[root@git2 project]# git branch deserver3
[root@git2 project]# git branch deserver4
[root@git2 project]# git branch deserver5
[root@git2 project]# git branch deserver6
[root@git2 project]# git checkout -b dev
Switched to a new branch 'dev'
3.切换回主分支,并查看当前所在分支;
[root@git2 project]# git checkout master
Switched to branch 'master'
[root@git2 project]# git branch
dev
devserver1
devserver2
devserver3
devserver4
devserver5
devserver6
* master
4.在分支devserver1里创建一个test.txt,并切换回主分支查看是否存在这个test.txt文件;
[root@git2 project]# git checkout devserver1
Switched to branch 'devserver1'
[root@git2 project]# ll
total 4
-rw-r--r-- 1 root root 5 Mar 18 00:54 1.txt
[root@git2 project]# touch test.txt
[root@git2 project]# git add test.txt
[root@git2 project]# git commit -m "txt add"
[devserver1 eb14965] txt add
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test.txt
[root@git2 project]# git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
[root@git2 project]# ll
total 4
-rw-r--r-- 1 root root 5 Mar 18 00:54 1.txt
5.合并devserver1和主分支,查看主分支里是否有test.txt文件;
[root@git2 project]# ll
total 4
-rw-r--r-- 1 root root 5 Mar 18 00:54 1.txt
[root@git2 project]# git merge devserver1
CONFLICT (modify/delete): test.txt deleted in HEAD and modified in devserver1. Version devserver1 of test.txt left in tree.
Automatic merge failed; fix conflicts and then commit the result.
[root@git2 project]# ll
total 4
-rw-r--r-- 1 root root 5 Mar 18 00:54 1.txt
-rw-r--r-- 1 root root 0 Mar 18 14:19 test.txt
6.删除本地分支devserver1,查看剩下所有分支;
[root@git2 project]# git branch
dev
devserver1
devserver2
devserver3
devserver4
devserver5
devserver6
* master
[root@git2 project]# git branch -d devserver1
error: The branch 'devserver1' is not fully merged. //需要删除的分支可能有合并到当前分支的内容,从而导致的报错
If you are sure you want to delete it, run 'git branch -D devserver1'.
[root@git2 project]# git branch -D devserver1
Deleted branch devserver1 (was eb14965).
[root@git2 project]# git branch
dev
devserver2
devserver3
devserver4
devserver5
devserver6
* master
7.推送本地分支devserver2-6到远端服务器,并查看是否成功;
客户端
[root@git2 project]# git remote -v //查看与远程服务器是否连接
origin git@192.168.100.130:/home/git/project.git (fetch)
origin git@192.168.100.130:/home/git/project.git (push)
[root@git2 project]# git push origin devserver2
[root@git2 project]# git push origin devserver3
[root@git2 project]# git push origin devserver4
[root@git2 project]# git push origin devserver5
[root@git2 project]# git push origin devserver6
服务端
[git@git1 project]$ git branch
devserver2
devserver3
devserver4
devserver5
devserver6
* master
8.运用三种办法删除远端分支devserver2-4;
[root@git2 project]# git push origin --delete devserver2
[root@git2 project]# git push origin :devserver3
[root@git2 project]# git branch -r -d origin/devserver4
9.在远程创建分支linuxgit,并拉取分支到本地客户端服务器上;
服务端
[git@git1 project]$ git branch linuxgit
客户端
[root@git2 project]# git fetch origin linuxgit:linuxgit
10.如何快速有效的拉取远程服务端的全部分支;
[root@git2 project]# git checkout dev //切换到本地有、而远程没有的一个分支上,避免冲突
[root@git2 project]# git branch -r | grep -v '\->' | cut -d'/' -f2 | xargs -n1 -i git fetch origin {}:{}