之前使用过svn,感觉gie应该是一样的,没什么不同的,但是实际开始使用的时候,就发现git和svn的区别很大,他们的理念是不一样的,导致操作有些难以理解,终于经过一天的资料查询与实验,理解了git的使原理,所以将一些操作步骤记录下来。

 

1.拉取仓库到本地

git clone URL

 

2.创建一个分支,并且切换到分支下面

git checkout -b breanchNameXXX

 

3.查看当前所属分支

git breach -vv

 

4.查看远程分支

git branch -a

 

5.将本地分支推到远程分支上

git push origin linux_client_data_firewall_cjw:data_firewall_cjw

 

6.删除本地分支

git branch -d XXXXXX

 

7.切换本地分支

git checkout XXXXXX

 

8.将远程分支的代码拉取到本地分支上

git pull origin data_firewall_cjw:linux_client_data_firewall_cjw

 

建立追踪关系的,可以省略远程分支名,例如

git pull origin master

git pull

 

以下是一些示例 -

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

Shell

比如,要取回origin主机的next分支,与本地的master分支合并,需要写成下面这样 -

$ git pull origin next:master

如果远程分支(next)要与当前分支合并,则冒号后面的部分可以省略。上面命令可以简写为:

$ git pull origin next

如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。

$ git pull origin

 

 

 

9.将本地修改提交到本地服务器

git commint -m "XXX"

 

10.将本地修改加入到本地服务器

git add XXXXXX

将工作区有变化的提交到暂存区,不包括删除文件

git add .

将已经add的文件提交到暂存区,不会添加新文件

git add -u

将所有变化提交到暂存区

git add -A

 

11.查看git状态

git staus

 

12.撤销修改文件

git checkout -- file

 

13.拉取远程仓库的指定分支到本地(本地不存在该分支)

git checkout -b 本地分支名 origin/远程分支名

 

14.删除文件操作

git rm file.name

git commit -m "rm file.name"

git push origin linux_client_data_firewall_cjw:data_firewall_cjw

 

 

 

 

 

A1代码提交流程需要以下几个步骤:

git add XXXXXX

git commint -m "XXX"

git push origin linux_client_data_firewall_cjw:data_firewall_cjw

 

A2主干同步到分支

切换到本地仓库,更新到最新代码

切换到要同步的分支 运行

git merge master

 

A3git冲突解决方法

git pull master

 

 

 

git入门需要了解的概念:

1.git的服务器库和本地库是分离开来的,不能说服务器上创建了一个分支版本,在本地直接拉取分支版本,在分支上进行修改。

本地创建的时候需要1.先将主线的代码拉到本地,2.在本地的主线上建立分支3.在本地分支上修改代码之后,再推到远程分支上,以完成合并。

 

2.当切换分支时,如果本地代码有修改,需要将本地的代码先提交到远程分支,之后才能切换到其他分支,git checkout master

 

3.切换到本地master分支,然后执行git pull,拉取版本库最新代码,日过是版本库的覆盖本地的代码,则先git reset,将有改变的文件还原,再pull

 

 

4.如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:git stash

git pull

git stash pop

然后可以使用git diff -w +文件名 来确认代码自动合并的情况.

 

5.本地的master和分支是两个空间,虽然在同一个目录,但是里面的内容是不一样的,所以操作修改代码的时候,要注意目录的区分

 

 

操作流程:

查看当前在那个分支下

git branch -a

1.先切换到本地master

git checkout master

2.拉取代码库最新的代码到master

git pull

3.切换到本地branch

git checkout linux_client_data_firewall_cjw

3.本地master同步到branch

git merge master / git pull master

4.添加修改修改文件到版本库

git add -u file.name

5.提交修改文件到版本库

git commit -m "file.name"

6.push本地修改到分支仓库

git push origin linux_client_data_firewall_cjw:data_firewall_cjw