配置git

配置git

一、个人开发

xcode自带git环境
一、进入工作目录,初始化一个代码仓库

1.1 git init (会在对应目录下创建一个.git隐藏文件)

1.2 显示隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool true

 隐藏隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool false

1.3 重启finder commod+option+esc

二、给git仓库配置一个用户名和邮箱

2.1 git config user.name”自己名字”

2.2 git config user.email “自己提交代码邮箱”

此时在.git的config文件里面就会有配置好的名字和邮箱;

三、初始化代码

3.1 创建文件 touch main.m(文件名字自己定义)


3.1.1   git status(查看目录下的文件状态)后会显示红色的 (Untracked files): 新添加或者修改的文件未添加到暂缓区;

3.2 添加到暂缓区

3.2.1 git add main.m(工作区添加到暂缓区) 让git管理main.m文件;用git status查看会有青色(new file: main.m)显示,可以提交到代码仓库(Changes to be committed:);[注:git add . :一次添加多个文件]

3.3 提交代码到暂缓区


3.3.1  git commit -m "填写代码的版本号" (将暂缓区的文件添加到暂缓区主要的分支)【eg:[master (root-commit) fde42c6] 初始化代码:】;

3.4 修改文件

3.4.1  open main.m\(打开文件\)此时git status 文件又变红了,又跑到工作区去了;

3.4.2 git add main.m(我们需要重新添加)此时git status 文件就是青色的,加入缓存区了;


3.4.3  git commit -m "修改了main.m"(文件需要重新提交);
四、给git命令取别名

4.1 git config alias.st “status” \/\/ st = status

  git config alias.ct "commit"    \/\/  ct = commit

  在config文件里面会显示
五、查看历史版本

5.1 git log(不能查看之前回退的版本号)


5.1.1  fde42c652693dde43f716a09a3d6be7271b16a30  //  版本号:由sha1加密算法生成的一个40位的哈希值,保证版本号唯一,不重复;

5.2 git reflog(可以查看之前回退的版本号)


5.2.1  显示前7位版本号命令,更简洁;
六、版本回退

6.1 git reset –hard \/\/ –hard强制回退


6.1.1  git reset --hard HEAD //  回到当前版本

6.1.2  git reset --hard HEAD^  //  回到上一个版本

6.1.3  git reset --hard HEAD^^  //  回到上两个版本

6.1.4  git reset --hard HEAD~100  //  回到上100个版本

6.1.5  git reset --hard  版本号前7//  回退到指定版本号
七 –global 配置全局用户名和邮箱

7.1 git config –global user.name “用户名”

7.2 git config –global user.email “自己提交代码邮箱”

终端命令行我也贴出来吧


bogon:git edge$ pwd

/Users/edge/Desktop/git

bogon:git edge$

bogon:git edge$ git config user.name"Edge"

bogon:git edge$ git config user.email "leonsongfeng@gail.com"

bogon:git edge$ touch main.m

bogon:git edge$ git status

On branch master

Initial commit

Untracked files:

  (use "git add <file>..." to include in what will be committed)

    main.m

nothing added to commit but untracked files present (use "git add" to track)

bogon:git edge$ git add main.m

bogon:git edge$ git status

On branch master

Initial commit

Changes to be committed:

  (use "git rm --cached <file>..." to unstage)

    new file:   main.m

bogon:git edge$ git commit -m "初始化代码"

[master (root-commit) fde42c6] 初始化代码

 1 file changed, 0 insertions(+), 0 deletions(-)

 create mode 100644 main.m

bogon:git edge$ open main.m

bogon:git edge$ git status

On branch master

Changes not staged for commit:

  (use "git add <file>..." to update what will be committed)

  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   main.m

no changes added to commit (use "git add" and/or "git commit -a")

bogon:git edge$ git add main.m

bogon:git edge$ git status

On branch master

Changes to be committed:

  (use "git reset HEAD <file>..." to unstage)

    modified:   main.m

bogon:git edge$ git commit -m "修改了main.m"

[master c65c95c] 修改了main.m

 1 file changed, 5 insertions(+)

bogon:git edge$ git status

On branch master

nothing to commit, working directory clean

bogon:git edge$ touch dog.h dog.m

bogon:git edge$ git status

On branch master

Untracked files:

  (use "git add <file>..." to include in what will be committed)

    dog.h

    dog.m

nothing added to commit but untracked files present (use "git add" to track)

bogon:git edge$ git add .

bogon:git edge$ git status

On branch master

Changes to be committed:

  (use "git reset HEAD <file>..." to unstage)

    new file:   dog.h

    new file:   dog.m

bogon:git edge$ git commit -m "添加了许多文件"

[master 000b563] 添加了许多文件

 2 files changed, 0 insertions(+), 0 deletions(-)

 create mode 100644 dog.h

 create mode 100644 dog.m

bogon:git edge$

bogon:git edge$ git config alias.st "status"

bogon:git edge$ git config alias.ct "commit"

bogon:git edge$ git config alias.ct "status"

bogon:git edge$ git config alias.ct "commit"

bogon:git edge$ git st

On branch master

nothing to commit, working directory clean

bogon:git edge$ git log

commit 000b563c12e840099743cdc14c5138f6cb954d3c

Author: UEdge <leonsongfeng@gail.com>

Date:   Fri Jul 22 12:11:28 2016 +0800

    添加了许多文件

commit c65c95c8a46de8dc75db508e048f10c501c54be1

Author: UEdge <leonsongfeng@gail.com>

Date:   Fri Jul 22 11:41:40 2016 +0800

    修改了main.m

commit fde42c652693dde43f716a09a3d6be7271b16a30

Author: UEdge <leonsongfeng@gail.com>

Date:   Fri Jul 22 11:22:23 2016 +0800

    初始化代码

bogon:git edge$

bogon:git edge$ git reflog

000b563 HEAD@{0}: commit: 添加了许多文件

c65c95c HEAD@{1}: commit: 修改了main.m

fde42c6 HEAD@{2}: commit (initial): 初始化代码

二、团队开发

本地:文件夹目录(团队开发->经理,远程代码仓库,开发者)

一、创建共享代码仓库

1.1 git init –bare // 创建远程仓库(在自己创建的远程代码仓库文件夹里面)

1.2 git clone 仓库地址 // 克隆代码仓库【(

进入管理文件夹(如经理)在该地址里面克隆我们的代码仓库)xcode 6可以直接在Xcode的Cheak out an exiting project 下面拖入我们要克隆的远程代码仓库地址(如要克隆岛经理的里面,可以先进入经理文件夹,然后再将远程代码仓库地址放进去next就行了,xcode 6可以直接提交,xcode7会一直转圈,**原因在于有中文的问题,在Xcode 7之后绝对路径之中有中文就不识别了)】。

1.3 添加.gitignore //添加忽略文件夹

( 打开浏览器->进入github->搜索gitignore(一般是星星最多的第一个)->找到Object-C.gitignore->进入其中将里面的文件内容复制下来,然后在终端cd 进入经理的远程代码仓库文件夹里面 touch .gitignore 然后打开finder(记得显示mac隐藏文件)双击打开.gitignore 将复制的内容粘贴进去,并保存。)

1.4 初始化代码(xcode7以前的不会有问题,可以直接push)

*用Xcode创建项目工程创建的文件不再工作区直接在暂缓区!!!*工程放在在经理的远程代码仓库里面,用git status可以看见文件都是青色的,不用add了直接commit提交就好了。在xcode的Source Control里面有一个commit点进去,在可视化界面的下面输入版本标识(如:初始化代码),直接提交就好了。–真样子本地代码仓库就管理好项目了,可是远程代码仓库还不能。接下来在Xcode的Source Control 里面点击push(就在commit下面),直接push就好了。这样子就提交到远远程码仓库里面了。

1.5 (先进入自己的目录然后再) git clone 远程代码仓库地址;个人(开发者)clone远程代码仓库,不是经理的远程代码仓库,将远程代码仓库东西导进来吗。出示此刻代码里是有我们刚才建立的项目的。

1.6

1.6.1  不同人修改不同模块:当其中(经理)修改了其中的代码,变重新push一次,另外一个人直接pull将代码拉下来就好了。

1.6.2 不同人修改相同模块:因为此时远程代码仓库更新了,我们要先更新本地代码仓库再push。当我们修改完成了需要先提交到本地代码仓库然后再pull但本地(提示代码冲突,显示要求修改)。xcode会提示四种解决方案【只用我们提交的(左边的)、只用服务器的(右边的),左边的在上面右边的的在下面、左边的在下面右边的在上面】。此时代码重新进行了更新,需要重新提交再push,然后再pull就好了。

1.6.3  当storyBoard或者xib发生变化(经理进行提交再push);当开发人员也修改了storyBoard然后进行提交再push。当开发人员pull下来时会发生代码冲突,这样子即使按照上面的解决了冲突也会报错,而且storyBooard还打不开****所以在以后的开发过程中,我们一定要使用一个人的storyBoard,要么用他的,要么用我们自己的,否则只能版本回退了****
网络:用的肯定是我们大家总所周知的Github了。
没有账号的小伙伴我就不带大家注册了,大家自己注册下就好了,这个比较简单。

2.1 点击右上角的+号码,选择里面的New repository 创建新的代码仓库。

2.2 进入了创建好的代码仓库 Repository name 填写我们的仓库名字;Description (optional)对我们的代码仓库进行描素;下面一般我们是开源选择public不然的话private要钱的;Initialize this repository with a README 这个创建项目说明书,我们肯定会选中了。这就到了最下面了(左边是Add.gitignore,右边是Add a license)在左边我们点进去添加我们要忽略的文件(eg:Object-C),在右边证书里面直接选择Apache License 2.0 别问我为嘛,记住就好了。再点击创建就好了。这里好比创建了远程代码仓库并且添加了.gitignire文件。
这里写图片描述

这里写图片描述
2.3 将网络上的代码仓库clone到本地。进入到Xcode的欢迎界面,点击Cheak out an exiting project 并且打开我们刚在网络上创建的代码仓库,

*点击Clone or download下面的网址*复制粘贴进去,这个是带.git结尾的,千万别错了。直接进行下一步,选择自己要保存的目录进行创建并且Download.此时此刻里面就有了刚才我们创建的文件了,这里就是我们的工作区域了。我们的代码就放在里面进行commit和push了。

2.4 用xcode创建一个项目放在刚才的文件夹里面。我们直接进行Commit和push到网络就好了。这时候会有一个特殊的操作:Xcode 会提示你输入账号和密码,别急这样是防止别人修改我们的代码,我们要输入*gitHub上注册的账号和密码*输入了再提交等菊花结束就好了。

2.5 进入我们的github我们刚才建立的远程仓库刷新下(commod+R)就可以看见我们刚才提交的项目文件夹了。这个时候,我们的文件夹因为是public的,所以全世界的小伙伴们都可以查看并且下载,但是不能修改我们的代码进行提交。如果我们想要团队的小伙伴们进行修改,大家一起完成就要指定人群了。*点击右上角头像,在下拉列表里面选择settings*不是项目上面的settings->进去后点击SSH and GPG keys 我们需要将要修改人员的电脑的ssh到我们的github这样才能访问。*如何生成SSH keys * 1.点击下面的 generating SSH keys 里面的 Adding a new SSH key to your GitHub account 里面就会告诉你如果添加新的ssh的方法了。

【1、进入终端,将下面的那一行命令复制进去执行,直到出现一个图案为止才结束了。2、进入finder 用户 目录home里面有个生成的.ssh隐藏文件夹里面有一个id_rsa_pub公历文件;3.进入终端 进入到该文件夹里面,执行 cat id_rsa_pub 查看该文件夹内容。这一串看起来乱码的就是电脑的公钥】我们进入github的里面点击SSH and GPG keys 进去点击添加Shh key 进去后里面。在title里面输入标识,将复制的内容放进key里面去。点击add就好了。这样这台电脑就可以和github的这个代码仓库无缝连接了。

eg:修改大神的代码AFNetworkinig。我们先将这个clone下来,在xcode里面修改,再按步骤提交上传就好了。

文章已将同步到简书啦,欢迎点击:https://www.jianshu.com/p/b2b6d6d9c9c3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值