配置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文件。
[图片上传失败...(image-cbb2fa-1533608040543)]

[图片上传失败...(image-d203a1-1533608040543)]
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里面修改,再按步骤提交上传就好了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,780评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,424评论 1 305
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,397评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,576评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,997评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,945评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,107评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,850评论 0 208
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,625评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,804评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,285评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,613评论 3 261
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,291评论 3 242
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,164评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,963评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,096评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,886评论 2 278

推荐阅读更多精彩内容