前言
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
git的常用命令
1.git init 【创建一个空的Git仓库或重新初始化一个现有仓库】
2.git clone 【从现有的仓库拷贝一份到本地,但是clone下来的只是master分支,没有其它分支】
3.git branch 分支名A 【创建分支A】
git checkout 分支名A 从【当前分支切换到分支A】
git checkout -b 分支名A 【创建分支A并且切换到分支A】
git checkout -b 分支名A 【start_point】 【指定新建的分支A是基于start_point这个节点,并且切换到这个分支A】
4.git branch 【查看本地的分支】
git branch -r 【查看远端分支】
git branch -a 【查看所有分支,包括本地和远程的】
5.git fetch 【用于从另一个存储库下载对象和引用,远程跟踪分支已更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令】
git fetch <远程主机名> 【将某个远程主机的更新,全部取回本地,可以简写为git fetch】
git fetch <远程主机名> <分支名> 【取回特定分支的更新】
eg:git fetch origin master 【取回origin主机的master分支,所取回的更新,在本地主机上要用”远程主机名/分支名”的形式读取。比如origin主机的master分支,就可以用origin/master】
6.git pull [options] [<repository> [<refspec>…]] 【取回远程主机某个分支的更新,再与本地的指定分支合并】
eg:git pull origin next:master【取回origin主机的next分支,与本地的master分支合并】
git pull origin next【取回origin/next分支,再与当前分支合并,备注:如果远程分支(next)要与当前分支合并,则冒号后面的部分可以省略】
git pull origin【本地的当前分支自动与对应的origin主机”追踪分支”(remote-tracking branch)进行合并。备注:在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动”追踪”origin/master分支。如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。】
git pull 【当前分支自动与唯一一个追踪分支进行合并。备注:如果当前分支只有一个追踪分支,连远程主机名都可以省略】
7.git fetch和git pull的区别:
git fetch:相当于是从远程获取最新版本到本地,不会自动合并。
git pull:相当于是从远程获取最新版本并merge到本地,相当于git fetch和git merge
8.git log 【用于显示提交日志信息】
9.git tag 【列显已有的标签】
10.git diff 【用于显示提交和工作树等之间的更改】
eg:git diff origin/release_5.0.0 origin/release_5.1.0 【可以显示两个分支之间的代码差异】
git diff origin/release_5.0.0 origin/release_5.1.0 --stat 【显示两个分支之间的代码都在哪里文件上有差异】
如何使用git命令从仓库拉取代码,以赣州为例
前提条件:
1.拉取代码首先要有gitlab的拉取代码的权限,可以找满哥加。
2.配置好ssl协议。
拉取步骤:
1.先在本地建一个存放代码的文件夹,例如我的文件夹路径是/Users/yunhuizhi/Documents/ganzhou
2.cd /Users/yunhuizhi/Documents/ganzhou 【进入赣州这个文件夹】
3. git clone http://10.20.11.218/FFProject/App_IOS.git
http://10.20.11.218/FFProject/App_IOS.git为仓库地址,可以在构建站查看,此条命令的含义按照以上git命令的描述就是把仓库的代码复制一份到本地,复制完成后可以看到文件夹下多了一个App_IOS的文件夹。
4.cd App_IOS 进入这个文件夹,可以使用git branch -r查看远端所有的分支,并且可以看到目前默认的当前分支是master_dev。
5.git checkout -b bank_ganzhou origin/bank_ganzhou
在远程赣州的分支上新建一个本地的赣州分支并切换到赣州分支上,建完以后可以git branch查看一下。
6.git pull 从远程主机拉取赣州分支上最新的更新与本地的赣州分支合并
7../fmanager init 重新初始化主工程和所有子模块的代码,这步只需要第一次的时候用,后续再更新就不需要了,看到动物图案的就是初始化完成了。
7../fmanager update 初始化完成后,再更新整个仓库的代码就好了