git的使用

打开终端:

查看Git的版本的终端命令:git —version

输入:ssh

查看是否已经存在ssh.

如果存在,先将已有的ssh备份,或者将新建的ssh生成到另外的目录下

如果不存在,通过默认的参数直接生成ssh

生成过程如下:

ssh-keygen -t rsa -C [email protected](注册Github时的email)

git的使用_第1张图片

在github中添加ssh(如图示:)

登录github,选择Account Settings—>SSH Keys添加ssh

Title:邮箱

Key:打开你生成的id_rsa.pub文件,将其中的内容拷贝至此。

git的使用_第2张图片

打开终端,先测试一下你的账号跟github连上没有:ssh -T [email protected]

如果出现一下提示,表示你已经连接上了。

git的使用_第3张图片

接下来就可以上传你的代码了,在github下建立自己的Repository。Create a new Repository如下:

git的使用_第4张图片

Repository name:通常就写自己要创建的工程名。

Description:就是你对工程的描述了。

选择Public

点击“Create resposity”,出现如下图:

git的使用_第5张图片

按照上面的步骤来就可以了(注意记得在终端中输入时把目录切换到你要长传的工程目录下)

touch README.md    //新建一个记录提交操作的文档

git init    //初始化本地仓库

git add README.md    //添加文件或者文件夹(需要多次使用以添加文件在Github上)

git commit -m “First commit”    //提交到仓库,并写一些注释。

git remote add origin [email protected]:youname@工程名.git    //连接远程仓库并创建了一个名为:origin的别名。

git push -u origin master    //将本地仓库的东西提交到地址是origin得地址,master分支下。


使用命令行提交代码

相关功能开发完毕之后,切记使用 show diff 操作检查代码避免修改了不必要的代码。

1

2gitshowdiff

检查代码之后,使用命令 git add . 把新添加的文件或者改动加入 git 暂存区。

1

2gitadd.

如果已经把改动增加到暂存区后,使用 show diff 不会再有提示,此时可以使用

1

2gitshowdiff--cached

git的使用_第6张图片

提交代码,使用命令

1

2gitcommit-m"注释内容"

git的使用_第7张图片

推送到远程仓库,使用命令

1

2gitpushorigin本地分支:远程分支

git的使用_第8张图片

此时可到远程仓库验证新分支。

使用 Xcode 提交代码

新建分支后对代码进行的操作都是本地的,多人合作开发时还需要提交到远程仓库。提交代码分两步,先 commit 后 push。这两步有什么区别,我们分别来看看。

push without commit

进入Source Control 菜单,直接选择 push

git的使用_第9张图片

在弹出的窗口中选择需要 push 到的分支,push 成功后会有提示。

git的使用_第10张图片

此时进入你的远程仓库查看,比如 GitLab,会发现没有新的代码加入。

push with commit

进入Source Control 菜单,先选择 commit。

git的使用_第11张图片

在弹出的窗口中我们可以看到当前代码和之前的代码间的差异,确认没问题后在下方的输入框中填写 commit message 后点击 Commit,不输入 commit message 是无法提交 commit 的。

git的使用_第12张图片

回到上一步进行 push 操作,此时再进入远程仓库查看,会发现已经有新的代码加入。

区别

在我看来 commit 是一个仓库,我们把代码先全部存储到这个仓库中。进行 push 操作就像把仓库中的代码运输到远程仓库中。所以 commit 和 push 缺一不可。


[iOS] 切换 Git 分支

/Git/iOS 项目使用 Git 的流程/[iOS] 切换 Git 分支

2016年2月23日

冯陈明

iOS 项目使用 Git 的流程

使用 Git 切换分支

使用 Git 命令切换分支主要用到以下两个命令:

1

2

3-gitcheckout分支名

-gitcheckout-b分支名

命令中的-b用于创建分支。使用下图的例子来解释:

git的使用_第13张图片

查看分支

下载远程仓库中的 development 分支并切换到该分支。

查看分支,可知已经切换到新下载的 development 分支。

此时用的 checkout 命令包含-b,提示已经存在 master 分支,说明-b用于创建 branch。

切换分支

查看分支,可知已经切换到 master 分支。

使用 Xcode 切换分支

在 Xcode 上方的菜单栏中,点击 Source Control 菜单,进入对应的子菜单选择 Switch to Branch,选择想要进入的分支后点击 Switch,切换成功后会有如下提示。

git的使用_第14张图片

git的使用_第15张图片

注意:如果对当前分支做了修改,切换其他分支前会提示要先进行 commit 操作。


使用 Git 查看分支

查看分支

查看本地分支命令如下:

1

2gitbranch

查看本地和远程分支命令如下:

1

2gitbranch-va

git的使用_第16张图片

图中 上面两个为本地分支,其中有 * 前缀的意味着当前所处分支。remotes/ 前缀的为远程仓库中的分支。

更多关于 Git 分支命令请查阅:Git 分支 – 分支的管理

注意:需要 cd 到项目路径下才可执行一系列 git 命令。

使用 Xcode 查看和管理分支

查看当前分支

在 Xcode 上方的菜单栏中,点击 Source Control 菜单,在弹出的菜单中即可看到当前分支。

git的使用_第17张图片

管理分支

如下图所示,点击 Configure xxx(即项目名)子菜单

git的使用_第18张图片

在弹出的窗口中选择 Branches 标签即可查看当前项目的所有本地和远程分支

git的使用_第19张图片

选择其中一个 Local Branches,单击窗口左下角的 “-” 号会弹出提示框,确认删除后选择 Delete Branch 即可删除本地分支。

git的使用_第20张图片

Git 分支概述

从上文查看全部远程分支一步的截图可以看到,此演示项目有多个分支:

development:该分支代码主要用于 Development 环境(服务器项目)或打测试包(Android 或 iOS 项目);

master:该分支主要用于 Production 环境(服务器项目)或打正式包(Android 或 iOS 项目);

其他分支:基于 development 分支衍生的 feature 分支。

所谓的 A 分支衍生 B 分支、基于 A 分支创建 B 分支,其实就是把 A 分支的代码完全复制一份,并将其命名为 B。



在 Gitlab 上创建

打开项目首页,按照下图所示操作

git的使用_第21张图片

进入创建分支页面,按图示输入后点击 CREATE BRANCH 按钮。

此时已经在远程仓库新建分支

git的使用_第22张图片

此时再使用 Pull 操作即可更新本地的 git 仓库,再切换到该分支即可。

git的使用_第23张图片
git的使用_第24张图片

在本地创建

使用命令行操作

先检查当前分支

1

2gitbranch

切换到基础分支,即要基于哪个分支开发

1

2gitcheckout基础分支名

使用命令行新建分支

1

2gitbranch新分支名

切换到新分支并进行功能开发

git的使用_第25张图片

使用 Xcode 新建分支

在 Xcode 上方的菜单栏中,点击 Source Control 菜单,进入对应的子菜单选择 New Branch,输入想要建立的分支名后点击 Create 即可。

git的使用_第26张图片

需要注意的是新分支的代码是建立在当前的分支基础上的,所以创建新分支前请留意当前所处分支。


使用 Git 命令合并分支

确认当前分支为自己的功能分支

确认的缘由是因为工作中我们会因各种原因需要切换到其他分支查看或修改代码,经常会有人忘记切回自己的功能分支,最后在错误的分支执行了一系列的代码更新、提交、合并等操作。

具体命令行在[iOS] 查看 Git 分支一文中做过详细介绍,此文不再赘述,如忘记可翻阅此文。

执行 git fetch 及 git merge 命令

多人协作的 Git 项目的远程分支经常会被更新,为了减少代码冲突,每次 merge 操作前都进行一次 Fetch 及 Mrege 操作,能减少很多不必要的问题。

命令行如下:

1

2

3gitfetchorigin// 抓取远程仓库更新

gitmergeorigin/远程分支// 将远程分支合并到本地当前分支

git的使用_第27张图片

git merege 的时候会要求输入 merge 的原因

git的使用_第28张图片

编辑保存后如果代码无冲突,会有下图提示

如果代码有冲突会有下提示,需要解决冲突后才能合并。

1

2

3CONFLICT(content):Mergeconflictinabc

Automaticmergefailed;fixconflictsandthencommittheresult.

使用 Xcode 合并分支

确认当前分支为自己的功能分支

该操作已在[iOS] 查看 Git 分支一文中做过详细介绍,此文不再赘述,如忘记可翻阅此文。

多人开发的时候难免进度会出现不统一的情况,所以当 development 分支有了更新之后,我们要先进行合并分支操作,避免出现冲突。进入Source Control 菜单,选择 pull 菜单,在弹出的菜单中选择需要合并的分支点击 pull。

git的使用_第29张图片

假设本地分支为 A,合并进来的分支为 B。此时会出现两种情况。

无冲突

若分支 B 的修改是新建了 B.h 文件而分支 A 原先并没有 B.h 文件,此时直接合并成功,分支 A 中会多了 B.h 文件,这个更改是不会有 commit 操作的,并且在远程仓库中也自动帮你进行了合并( merge )操作。

如果 pull 的代码中包含新文件,手动添加到 Xcode 项目中即可。

有冲突

若分支 A、B 同时修改一份文件,会产生冲突,如下图所示:

git的使用_第30张图片

此时需要利用下方的四个按钮解决冲突后才可以合并,合并完成后本地代码会更新为最新代码。

git的使用_第31张图片

你可能感兴趣的:(git的使用)