微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift详解之二十--------在xcode中使用git管理源代码,将代码提交到github

在xcode中使用git管理源代码,将代码提交到github

本文记录一下如何在Xcode中使用Git作为源代码控制工具,以及如何将本地的Git仓库和远程Github上的仓库集成起来,虽然这章节和swift没有关系 ,但我还是放在这里。觉得学swift 这个也很关键。

1、xcode中使用git源码控制

目前版本的饿xcode(xcode 4 以上)都集成了源代码控制(Source Control)工具了,所以为新建的项目使用git来管理是很方便的。

我们只要在新建项目的时候勾选下图的checkBox

xcode就自动为我们创建了,git源代码管理。我们项目目录里应该就又.git文件夹了。如果没有。可以显示隐藏文件看看。

defaults write com.apple.finder AppleShowAllFiles TRUE

这时候 我们的Source Control ,就可以有很多操作了。

如果要给以前的项目添加git,先到项目目录

cd /Users/YOUR-USERNAME/Desktop/NoGitExample

然后

git init

这会初始化一个空的源,如果你在Finder里面查看或是输入ls命令,你会看到.git子目录已经被创建,很好,接下来输入:

git add .

这样,当前目录所有的内容就被添加到源里面去了,最后,输入以下命令:

git commit -m 'Initial commit’ 

这样就给项目加上git了 。对详细的git操作可以看在Xcode中使用Git进行源码控制
讲得很详细,很好。前面都是摘取它里面的片段 。

2、. 如何将Xcode的本地Git仓库与Github的远程仓库集成

Github的理念源自于Git,二者并非完全一致的。但是从版本控制方面来说,差别不大。所以利用Xcode内置的Git管理功能即可与Github连接,而无需额外安装Github客户端。

我们可以使用SSH连接,使用非对称公钥认证方法。将xcode与github链接起来 。 当然不连接起来应该也可以 。不过要每次输入用户名密码麻烦 。

ssh-keygen -t dsa -f ~/.ssh/id_dsa

提示你输入密码。两次

Your identification has been saved in /Users/xx/.ssh/id_dsa.
Your public key has been saved in /Users/xx/.ssh/id_dsa.pub.

然后提示你这两句 。我们去/Users/xx/.ssh/id_dsa.pub. 这个文件中找到public key 一长串字母

也可以直接使用这个命令查看 cat ~/.ssh/id_dsa.pub

然后进git官网登录点击自己头像-->Settings->SSH keys->add Key

然后title 随便写一个 ,把那一长串字母 复制到key中 。

then , 在控制台测试.ssh dz$ ssh -T git@github.com
如果出现

Hi xxxxx! You've successfully authenticated,but GitHub does not provide shell access.

证明成功了 !

这里有可能出现这个错误Permission denied (publickey)
可以试试这个方法

你只要修改/etc/ssh/sshd-config文件,将其中的PermitRootLogin no修改yes,PubkeyAuthentication yes修改no,AuthorizedKeysFile .ssh/authorized_keys前面加上#屏蔽掉,PasswordAuthentication no修改为yes就可以了。

这个是网上的方法/etc/sshd-config 我的文件是这样的结构。没有ssh那个层级

然后就是为本地项目添加远程地址了 。

然后到下面这个界面

Name根据自己喜好写吧 , Addressgithubrepositorie


直接在这里复制就行了。
然后就是push了 ,别说你找不到push!!Source Control菜单

在这里有可能报一个错(xcode 6 )

Could not read from remote repository.Please make sure you have the 。。。。。。。。

如果是 xcode 7,可能会报

The local repository is out of date.
Make sure all changes have been pulled from the remote repository and try again.

别担心 , 是因为你再github新建的项目中有readme.md 在本地没有造成的,需要将它pull下来

在终端,先进入到你项目目录,cd 。。。。。。
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并

git pull <远程主机名> <远程分支名>:<本地分支名>

现在已经在项目当前目录了 。

git pull --rebase xxx master

xxxAdd RemoteName master 是你的分支名称 认是master

我就遇到这么多问题 , 如果你遇到别的奇葩问题。自行解决。。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐