使用Xcode向github上传代码

几乎全部iOS程序员都上过GitHub寻找开源类库,的确,GitHub上有大量优秀的开源类库供你们学习。可是如何在Xcode中上传代码至GitHub呢?html

(开始以前先安装git,具体方法这里讲的很清楚:http://git.oschina.net/progit/1-起步.html)git

开始

首先咱们新建一个工程,记得要勾选Create git repository on:程序员

这说明使用Source Control,会默认在工程中建立git repository。而后工程新建完成后,会在右侧边栏看到这些信息,说明已经启用Source Controljson

若是没有使用Source Control,则是这样的:xcode

如今咱们已经在工程中启用了Source Control,这样就可使用git来管理工程版本了安全

可是若是咱们想对一个未启用git的工程加入git的功能怎么作呢?咱们可使用命令行来开启此功能,新建一个工程,不勾选Create git repository on,此时咱们没有开启Source Control,而后咱们手动建立git管理,以下图所示:app

1ssh

2编辑器

3ide

YiBantekiiMac-3:UseGit YiBan$ cd /Users/YiBan/Documents/iOS_Dev/ManualGitDemo

YiBantekiiMac-3:ManualGitDemo YiBan$ git init

Initialized empty Git repository in /Users/YiBan/Documents/iOS_Dev/ManualGitDemo/.git/

使用

1

git init

来初始化一个空的git仓库,如今使用ls-la命令查看目录下的全部文件(包含隐藏文件)

1

total 16

1

2

3

4

5

6

7

drwxr-xr-x   7 YiBan  staff   238  5 12 16:10 .

drwxr-xr-x  52 YiBan  staff  1768  5 12 16:06 ..

-rw-r--r--@  1 YiBan  staff  6148  5 12 16:10 .DS_Store

drwxr-xr-x   9 YiBan  staff   306  5 12 16:06 .git

drwxr-xr-x  12 YiBan  staff   408  5 12 16:06 ManualGitDemo

drwxr-xr-x   5 YiBan  staff   170  5 12 16:06 ManualGitDemo.xcodeproj

drwxr-xr-x   5 YiBan  staff   170  5 12 16:06 ManualGitDemoTests

此时咱们看到除了三个文件以外还有两个隐藏文件,.DS_Store和.git,.DS_Store是由OS X生成的文件,包含了文件夹中的位置属性,.git则是启用了Source Control自动生成的目录,而后使用git status查看当前状态:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

YiBantekiiMac-3:ManualGitDemo YiBan$ git status

On branch master

 

Initial commit

 

Untracked files:

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

 

    .DS_Store

    ManualGitDemo.xcodeproj/

    ManualGitDemo/

    ManualGitDemoTests/

 

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

说明初始化成功了,显示出了未被追踪的文件。不过咱们并不但愿把.DS_Store也加入的git中,由于那文件对咱们没有任何用处,咱们能够忽略它,具体作法是:新建一个文件,命名为.gitignore,而后使用文本编辑器输入如下信息:

1

2

3

4

5

6

7

8

9

10

11

12

13

# Xcode
<br>.DS_Store
<br>*/build/*<br>
*.pbxuser

!default.pbxuser

*.mode1v3

!default.mode1v3

*.mode2v3

!default.mode2v3

*.perspectivev3

!default.perspectivev3

xcuserdata

profile <br>*.moved-aside

DerivedData

.idea/

*.hmap

保存至工程文件夹中,这样咱们目录中就多出一个.gitignore文件了,这时咱们再用git status命令查看当前状态:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

YiBantekiiMac-3:ManualGitDemo YiBan$ git status

On branch master

 

Initial commit

 

Untracked files:

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

 

    .gitignore

    ManualGitDemo.xcodeproj/

    ManualGitDemo/

    ManualGitDemoTests/

 

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

这里看到已经没有.DS_Store了,说明.gitignore已经把.DS_Store忽略了。如今能够提交了,使用

1

git add .

此命令先将文件添加至暂存区域,但尚未提交,查看下状态:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

YiBantekiiMac-3:ManualGitDemo YiBan$ git status

On branch master

 

Initial commit

 

Changes to be committed:

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

 

    new file:   .gitignore

    new file:   ManualGitDemo.xcodeproj/project.pbxproj

    new file:   ManualGitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata

    new file:   ManualGitDemo/AppDelegate.h

    new file:   ManualGitDemo/AppDelegate.m

    new file:   ManualGitDemo/Base.lproj/Main.storyboard

    new file:   ManualGitDemo/Images.xcassets/AppIcon.appiconset/Contents.json

    new file:   ManualGitDemo/Images.xcassets/LaunchImage.launchimage/Contents.json

    new file:   ManualGitDemo/ManualGitDemo-Info.plist

    new file:   ManualGitDemo/ManualGitDemo-Prefix.pch

    new file:   ManualGitDemo/ViewController.h

    new file:   ManualGitDemo/ViewController.m

    new file:   ManualGitDemo/en.lproj/InfoPlist.strings

    new file:   ManualGitDemo/main.m

    new file:   ManualGitDemoTests/ManualGitDemoTests-Info.plist

    new file:   ManualGitDemoTests/ManualGitDemoTests.m

    new file:   ManualGitDemoTests/en.lproj/InfoPlist.strings

如今进行提交,使用git commit -m "Initail"命令,引号内的内容是提交的注释,随便写什么均可以:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

YiBantekiiMac-3:ManualGitDemo YiBan$ git commit -m "Initial"

[master (root-commit) 83bbefc] Initial

 17 files changed, 803 insertions(+)

 create mode 100644 .gitignore

 create mode 100644 ManualGitDemo.xcodeproj/project.pbxproj

 create mode 100644 ManualGitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata

 create mode 100644 ManualGitDemo/AppDelegate.h

 create mode 100644 ManualGitDemo/AppDelegate.m

 create mode 100644 ManualGitDemo/Base.lproj/Main.storyboard

 create mode 100644 ManualGitDemo/Images.xcassets/AppIcon.appiconset/Contents.json

 create mode 100644 ManualGitDemo/Images.xcassets/LaunchImage.launchimage/Contents.json

 create mode 100644 ManualGitDemo/ManualGitDemo-Info.plist

 create mode 100644 ManualGitDemo/ManualGitDemo-Prefix.pch

 create mode 100644 ManualGitDemo/ViewController.h

 create mode 100644 ManualGitDemo/ViewController.m

 create mode 100644 ManualGitDemo/en.lproj/InfoPlist.strings

 create mode 100644 ManualGitDemo/main.m

 create mode 100644 ManualGitDemoTests/ManualGitDemoTests-Info.plist

 create mode 100644 ManualGitDemoTests/ManualGitDemoTests.m

 create mode 100644 ManualGitDemoTests/en.lproj/InfoPlist.strings

再查看下状态:

1

2

3

YiBantekiiMac-3:ManualGitDemo YiBan$ git status

On branch master

nothing to commit, working directory clean

好了,当前工做区是干净的,代码都已经提交完毕了。咱们能够用Xcode提交代码,也能够用命令来提交,可是用命令行的话能够作的事情更多一些。使用Xcode能够查看提交的历史纪录,Source Control->History:

添加工程至GitHub

首先必须有GitHub的账号,没有的话去注册一个,而且还要建立SSH,GitHub使用了公私密钥,确保与你的电脑通信过程是安全的。

SSH建立过程是这样的:

1. 在命令行输入cd ~/.ssh,而后ls,看看此文件夹下有哪些文件,若是有id_rsa.pub或者id_dsa.pub(名字可能会不一样),说明你已经有SSH keys了,你能够将它添加到你的帐户中

2. 若是没有的话,你讲获得"No such file or directory"这个错误信息,此时你能够经过命令生成出来:

1

ssh-keygen -t rsa -C "YOUR EMAIL"

在那里填写你的email地址,以后会被要求填写密码,此时的SSH keys就生成好了,有了SSH Keys后将其添加至你的GitHub帐户中就能够了,在帐户设置中找到SSH keys这一项,而后填写title和key,如今,你的SSH Key就和GitHub帐户绑定了

前往我的主页,新建一个repository(网页右上方),会要输入一些信息:

输入Repository name和描述,而后选建立,会看到repository的连接:

把连接赋值下来,前往Xcode中,Source Control->第一项->Configure...,以后选Remotes:

Add Remote中,输入Name(你工程的名字)和Address(以前的连接地址),而后Source Control->Push,选择刚刚新建的连接,Push~

如今刷新下GitHub主页,你的工程已经添加成功了~!

 

 

因为本身也遇到了一样问题,找到的解决办法怕本身忘啦,特复制的解决办法

相关文章
相关标签/搜索