IOS博客项目搭建-将项目推送到Github进行管理

微博项目使用github管理,将项目文件推送到github以方便管理,研究git

说明:按照如下的第1、九步骤便可推送到远程仓库。先在本地初始化创建git跟踪目录,而后推送到远程代码库https://github.com/xxx/xxx.git便可。github

##1、建立一个本地代码库服务器

一、咱们首先须要告诉Git这个文件夹是咱们须要跟踪的项目。因此咱们发送这个命令来初始化一个新的本地Git代码库,切换到本地项目目录下(本地项目名为ItcastWeibo-v10)并发

cd /Users/mac/Documents/学习区/IOS代码/ItcastWeibo-v10

二、git init 初始化 Git会在ItcastWeibo-v10文件夹内建立一个名为.git的隐藏文件夹,那就是你的本地代码库dom

git init

##2、加载(Stage)文件学习

咱们如今须要命令Git咱们须要加载(stage)全部项目文件。发送:code

git add .

最后的“.”符号的意思是“全部文件、文件夹和子文件夹”。假如咱们只想要把特定文件添加到源代码控制中去,咱们能够指定它们: git add my_file, my_other_file图片

##3、提交文件开发

如今,咱们想要提交已加载(staged)的文件。阅读“添加一个时间点,在这里你的文件处在一个可还原的状态”。咱们提交咱们的文件时,老是附带着有意义的注释,描述了它们如今的状态。我一直用“initial commit”来做为第一个提交的注释。rem

git commit -m "initial commit"

就这样。如今你随时均可以回滚到这个提交状态。若是你有须要检查你如今的已加载(staged)和未加载(unstaged)文件的状态、提交等,你能够询问git的状态:

git status

##4、建立分支

创建分支是你建立代码的独立版本的动做,独立于你的主干分支。默认地,每次你提交到Git的文件都会被储存到“master(主干)”分支。 如今咱们来讲说,你想要向项目里添加一个功能,但你想要可以回滚到如今版本,以防出现差错,或者你决定要放弃这个功能。这就是你建立分支的时候了。建立并同时切换到你新建的分支,发送:

git checkout -b new_feature

或者,你能够先建立一个分支而后手动切换,就像这样:

git branch new_featuregit checkout new_feature

要看你如今项目下全部的分支,发送这个:

git branch

如今你能够在你的项目上无所顾忌地作任何你想作的:任什么时候候,你均可以回到你建立分支前的状态。注意,你同时能够有多个分支,甚至能够从一个分支上再建立一个分支。

##5、合并分支

当你对你的新功能满意了的时候,你想要把它加到主干分支上。当你在你的新功能分支上时,你首先须要加载(stage)而且提交你的文件:

git add .git commit -m "adds my new feature"

而后你移到你的主干分支:

git checkout master

像这样合并:

git merge new_feature

此时,你的主干分支和你的新功能分支会变成同样的了。

##6、丢弃分支

相反,若是你打算丢弃你在分支里作的修改,你首先须要加载(stage)你的文件而且在分支里提交:

git add .git commit -m "feature to be discarded"

而后,你移到主干分支:

git checkout master

如今,你的代码处于你建立分支以前的状态了。

##7、删除一个分支

若是你要把你的分支合并到主干分支,从主干(master)分支上发送:

git branch -d new_feature

假如修改已经合并了,它只会删除分支。假如分支没有合并,你会获得一个错误信息。删除一个未合并的分支(一般你不想保留的修改),你须要发送同样的命令附带一个大写D。意思是“强制删除分支,不管如何我不想要它了。”:

git branch -D new_feature

##8、回滚到以前的提交状态

在某些时候,你可能想要回到以前的代码版本。首先,你须要找到你想回到哪一个版本。要看全部的完成了的提交,发送:

git log

这会输出你的提交的历史记录,像这样:

commit ca82a6dff817ec66f44342007202690a93763949Author: your_username

your_email@domain.comDate: Mon Nov 4 12:52:11 2013 -0700 changes the frontpage layout commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7Author: your_username your_email@domain.comDate: Mon Nov 4 11:40:33 2013 -0700 adds my new feature commit a11bef06a3f659402fe7563abf99ad00de2209e6Author: your_username your_email@domain.comDate: Mon Nov 4 10:37:28 2013 -0700 initial commit 若是你想回到“adds my new feature”这个提交,简单地用提交的ID作签出(checkout)(我一般只用到ID开头的9个字符)

git checkout 085bb3bcb

你也能够签出到一个新的分支,像这样:

git checkout -b my_previous_version 085bb3bcb

只是别太疯狂了!你的分支越复杂,就越难肯定你真正在作什么。

##9、推送到远程代码库

**在第一次你想推送一个本地代码库到远程代码库时,你须要把它添加到你的项目配置里。**像这样作:

git remote add origin https://your_username@bitbucket.org/your_username/name_of_remote_repository.git

注意这里的“origin”只是一个习惯。它是你的远程代码库的别名,可是你能够用其余任何你喜欢的词。你甚至能够有多个远程代码库,你只须要给它们起不一样的别名。 以后,你想要推送你的本地代码库的主干分支到你的远程代码库:

git push origin master

若是你使用Bitbucket,在这时,你会被请求输入你的密码。照作,你的本地代码库会被推送到你的远程代码库上。

取得远程代码库的一份本地拷贝

若是你尚未一份远程代码库的本地版本(例如,若是你在另外一台机器上开始工做,这台机器上尚未用过这个项目),你首先须要拷贝(clone)它。去到你的代码库想要拷贝到的文件夹下,并发送: git clone https://your_username@bitbucket.org/your_username/name_of_remote_repository.git 另外一方面,若是你已经在本地的项目上工做了,只是想从远程代码库上取得它最新的版本,移动到项目的根目录下,并发送:

git pull origin master

tu

##10、别名

Git容许你为你经常使用的命令建立快捷方式(别名)。例如,若是你不想每次都输入git commit -m “some comment”,而是输入git c “some comment”,你能够向你的git全局配置里添加一个别名来实现,像这样:

git config --global alias.c 'commit -m'

这是我使用的别名列表: git config --global alias.c 'commit -m' git config --global alias.co 'checkout' git config --global alias.cob 'checkout -b' git config --global alias.br 'branch' git config --global alias.m 'merge' git config --global alias.a 'add .' git config --global alias.s 'status' git config --global alias.dbr 'branch -d'

咱们能够在Xcode-》preference中添加我的仓库repository,之后就能够用Xcode来push更新的项目了,而不须要在客户端使用命令来提交,大大提升了开发效率。 图片

##11、处理服务器端和本地代码冲突 如题,当咱们github中的代码有改动时,这时若是本地的代码须要推送到github仓库时就会报错,由于github仓库中的版本比本地的新,因此这时须要先在本地pull仓库中的代码到本地,获取到最新的版本以后,再推送到远程仓库中。 输入图片说明

git命令

MacdeMacBook-Pro-3:~ mac$ cd /Users/mac/Documents/学习区/IOS代码/ItcastWeibo-v10
MacdeMacBook-Pro-3:ItcastWeibo-v10 mac$ git pull origin master
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 3), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), done.
From https://github.com/corwien/SinaWeibo
 * branch            master     -> FETCH_HEAD
   34ef98b..d408ada  master     -> origin/master
Merge made by the 'recursive' strategy.
 README.md | 2 ++
 1 file changed, 2 insertions(+)
MacdeMacBook-Pro-3:ItcastWeibo-v10 mac$

请看个人我的微博:Corwien我的博客

相关文章
相关标签/搜索