使用Git时,怎么gitignore忽略文件夹不想上传的文件

使用Xcode上传代码至GitHub - IOS技巧 - 大学IT网
当前位置: >
> 使用Xcode上传代码至GitHub
关键词:&&阅读(7544) 赞(20)
[摘要]本文是对使用Xcode上传代码至GitHub的讲解,对学习IOS苹果软件开发有所帮助,与大家分享。
几乎所有iOS程序员都上过GitHub寻找开源类库,的确,GitHub上有大量优秀的开源类库供大家学习。但是如何在Xcode中上传代码至GitHub呢?
(开始之前先安装git,具体方法这里讲的很清楚:http://git.oschina.net/progit/1-起步.html)
首先我们新建一个工程,记得要勾选Create git repository on:
这说明使用Source Control,会默认在工程中创建git repository。然后工程新建完成后,会在右侧边栏看到这些信息,说明已经启用Source Control
如果没有使用Source Control,则是这样的:
现在我们已经在工程中启用了Source Control,这样就可以使用git来管理工程版本了
但是如果我们想对一个未启用git的工程加入git的功能怎么做呢?我们可以使用命令行来开启此功能,新建一个工程,不勾选Create git repository on,此时我们没有开启Source Control,然后我们手动创建git管理,如下图所示: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/
使用git init
来初始化一个空的git仓库,现在使用ls-la命令查看目录下的所有文件(包含隐藏文件)total 16drwxr-xr-x
5 12 16:10 .
drwxr-xr-x
-rw-r--r--@
16:10 .DS_Store
drwxr-xr-x
5 12 16:06 .git
drwxr-xr-x
5 12 16:06 ManualGitDemo
drwxr-xr-x
5 12 16:06 ManualGitDemo.xcodeproj
drwxr-xr-x
5 12 16:06 ManualGitDemoTests
此时我们看到除了三个文件之外还有两个隐藏文件,.DS_Store和.git,.DS_Store是由OS X生成的文件,包含了文件夹中的位置属性,.git则是启用了Source Control自动生成的目录,然后使用git status查看当前状态:YiBantekiiMac-3:ManualGitDemo YiBan$ git status
On branch master
Initial commit
Untracked files:
(use "git add &file&..." to include in what will be committed)
ManualGitDemo.xcodeproj/
ManualGitDemo/
ManualGitDemoTests/
nothing added to commit but untracked files present (use "git add" to track)
说明初始化成功了,显示出了未被追踪的文件。不过我们并不希望把.DS_Store也加入的git中,因为那文件对我们没有任何用处,我们可以忽略它,具体做法是:新建一个文件,命名为.gitignore,然后使用文本编辑器输入以下信息:# Xcode?.DS_Store?*/build/*?*.pbxuser
!default.pbxuser
!default.mode1v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
profile *.moved-aside
DerivedData
保存至工程文件夹中,这样我们目录中就多出一个.gitignore文件了,这时我们再用git status命令查看当前状态: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忽略了。现在可以提交了,使用git add .
此命令先将文件添加至暂存区域,但还没有提交,查看下状态:YiBantekiiMac-3:ManualGitDemo YiBan$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached &file&..." to unstage)
.gitignore
ManualGitDemo.xcodeproj/project.pbxproj
ManualGitDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
ManualGitDemo/AppDelegate.h
ManualGitDemo/AppDelegate.m
ManualGitDemo/Base.lproj/Main.storyboard
ManualGitDemo/Images.xcassets/AppIcon.appiconset/Contents.json
ManualGitDemo/Images.xcassets/LaunchImage.launchimage/Contents.json
ManualGitDemo/ManualGitDemo-Info.plist
ManualGitDemo/ManualGitDemo-Prefix.pch
ManualGitDemo/ViewController.h
ManualGitDemo/ViewController.m
ManualGitDemo/en.lproj/InfoPlist.strings
ManualGitDemo/main.m
ManualGitDemoTests/ManualGitDemoTests-Info.plist
ManualGitDemoTests/ManualGitDemoTests.m
ManualGitDemoTests/en.lproj/InfoPlist.strings
现在进行提交,使用git commit -m "Initail"命令,引号内的内容是提交的注释,随便写什么都可以: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
再查看下状态: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"这个错误信息,此时你可以通过命令生成出来: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主页,你的工程已经添加成功了~!
相关IOS技巧推荐iOS Git版本控制和Xcode结合使用-爱编程
iOS Git版本控制和Xcode结合使用
1.为什么要使用版本控制
  什么是版本控制:版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
  版本控制系统本质:版本控制是检测文件的改变并将其保存,留作以后参考使用。
2.早期本地版本控制系统
  单人的本地系统
  中心版本控制系统
    优点:可多人合作
    缺点:Server Down时会丢失数据
  分布式版本控制系统
    特点:1.每个客户端并不只是获取最新的代码,还保存有与服务器相同的所有代码
       2.服务器发生故障时,可以从任意client恢复
3.什么是git
  git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
  git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件
4.git工作原理(本地)
  工作区(working directory):工作区中有仓库文件夹里除.git目录以外的内容
  版本库(Repository):.git目录,用于存储记录版本信息
  暂缓区(stage):执行commit动作后,缓冲区不会存在原来add的文件
  分支(master):git自动创建的第一个分支
  HEAD指针:用于指向当前分支
5.git工作原理(本地和远程)
  1.几乎每一种版本控制系统都支持分支。
  2.使用分支从开发主分支(master)上分离,不影响主线的代码。
  3.通过HEAD指针了解当前在哪个分支上工作
7.git常用命令
  查看命令:
    1.git --help      查看git所有命令
    2.git clone -help    查看git clone命令的细节
    3.git config -l     & 查看当前所有配置
  创建本地代码库和配置个人信息
    1.git init                  初始化本地仓库
    2.git config user.name xxxx         配置用户名字(xxxx为配置的用户名字)
    3.git config user.email
& & &配置邮箱
  一次性完成用户名和邮箱的配置
    1.git config &global user.name xxxx        &一次性配置用户名(xxxx为配置的用户名)
    2.git config &global user.email &  一次性配置邮箱  git代码提交相关命令
    1.git status             查看代码库状态
    2.git add xxxx            &将文件xxxx提交到缓存区
    3.git commit -m &提交注释描述& &  将修改的代码提交到本地仓库Repository
    4.git add .              &将当前文件夹下所有新建或修改的文件一次性添加到缓存区
    5.git diff               &查看最新修改的文件
    6.git diff xxxx            查看xxxx文件修改的地方
    7.git checkout xxxx         撤销对xxxx文件的修改
  git日志log相关命令
    1.git log     查看所有版本库日志
    2.git log xxxx   查看xxxx文件的版本库日志  git版本切换相关命令
    1.git reflog          & & 查看当前分支引用记录
    2.git reset xxxx &       & &xxxx文件从缓存区恢复到工作区(修改保留)
    3.git reset --hard        &恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
    4.git reset --hard 8146023   返回到8146023那个版本(使用git reflog命令查看)
  git分支branch相关命令
    1.git branch       &查看当前所处的分支
    2.git branch xxxx    创建xxxx分支
    3.git checkout xxxx   切换到xxxx分支
    4.git branch -d xxxx   &删除xxxx分支
    5.git merge xxxx    &将xxxx分支的代码合并到当前分支
  git标签tag相关命令
    1.git tag       查看版本
    2.git tag xxxx    &在本地创建xxxx的版本
    3.git tag -d xxxx   删除xxxx的版本
8.git远程仓库
  远程仓库的搭建
    1.github:
    2.oschina:git.oschina.net
  忽略不需要加入版本控制的文件或者文件夹
    1.链接:/search?utf8=?&q=gitignore&
    2.将.gitignore文件拷贝到.git文件夹同目录下
    3.git add .gitignore &添加到缓存区
    4.git commit -m "添加ignore文件" &添加到本地仓库中
9.如何在Xcode中使用git(mac本地)
  目标:使用Xcode创建一个git管理的工程
  步骤:
    1.创建Xcode工程,勾选&Create git repository on My Mac&选项,Xcode默认会在新项目创建时保存一个项目初始状态的版本
    2.添加/修改代码
    3.Source Control ==& Commit 提交修改版本
    4.左侧是文件的当前版本(没有提交的),右侧是文件的最近提交的版本
        Don't Commit:选中后对勾符号会变成禁止符号,对应的改动就不会提交到repository
        Discard Change:取消修改部分
    5.添加commit(提交的描述信息)
     提交修改的变化
    6.Source Control ==& History 显示提交的历史记录
10.Xcode中使用git细节(mac本地)
  创建新类文件,会在右边有A的标识
  项目的配置文件在添加新类时由Xcode自动修改
  版本对比
    View ==& Version Editor ==& Show Version Editor
    快捷键查看
    选择要进行对比的版本
  查看是谁提交的
    View ==& Version Editor ==& Show Blame View
  显示log视图
    View ==& Version Editor ==& Show Log View
11.Xcode上的git分支
  情景:开发新特性,不想破坏目前稳定主分支的程序
  git总会默认创建一个分支,名为master
  备注:
    1.提交到AppStore的最终产品一定是master分支的版本
    2.任何处于其他分支的代码,都必须先合并到master分支,之后才能正式发布
  在Xcode上创建分支步骤:
    Source Control ==& master ==& New Branch
12.提交代码git分支
  1.切换branch
  2.修改代码
  3.提交代码Commit
  4.查看分支代码
    View ==& Version Editor ==& Show Version Editor
13.合并两个分支变化到主分支
  合并步骤:
    1.首先在合并之前,该分支上做的修改必须先提交到本地仓库
    2.要确定你现在处在主分支上
    3.合并两个不同的分支到一个分支上你有两种选择
      从分支上合并Merge From Branch:你可以选择在分支上做过的任何修改来合并到当前工作分支上
      合并到分支上Merge Into Branch:你可以选择在当前工作的分支上做过的任何修改合并到分支上
      注意:当你当前活跃的分支是主分支的话,第二个选择是不可用的
14.Xcode中使用git细节(GitHub远程仓库)
  步骤:
    1.创建一个github账号
    2.创建一个远程repository
    3.填写repository信息
    4.Xcode ==& Preferences添加repository
    5.将github界面上的https url粘贴到Address,并填写账号和密码
    6.创建工程,选择Check out an existing project
    7.Check out github上的repository
    8.在刚才Check out的文件夹下,创建Xcode项目,此时Create Git repository on My Mac的选项是不可选的
    9.添加/修改代码,Source Control ==& Commit,流程跟上面Commit到本地一样
    10.push本地代码
    11.异常处理
      解决方案:
        1.全局配置邮箱信息,在终端输入:git config --global
        2.只是针对某个项目做设置
15.使用github客户端
  步骤:
    1.注册github账号
    2.下载github客户端(这里将mac版):
    3.打开客户端并登陆
    4.添加/创建一个代码库,先创建一个本地库,然后publish到github
    5.上传
    6.查看历史改动
    7.修改代码,可在客户端直接进入工程在本地的位置,打开后修改然后commit
    8.查看分支
版权所有 爱编程 (C) Copyright 2012. . All Rights Reserved.
闽ICP备号-3
微信扫一扫关注爱编程,每天为您推送一篇经典技术文章。git合并分支时如何忽略某些文件不合并(保持原样)?
[问题点数:100分]
git合并分支时如何忽略某些文件不合并(保持原样)?
[问题点数:100分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。水木-Linux系统与应用-git add时tab自动完成添加文件名可以只从新文件中选择么。
主题文章列表
下一页&共1页&
git add时tab自动完成添加文件名可以只从新文件中选择么。
发信人:&monkey&(Conjugate&Priors),&信区:&LinuxApp
标&&题:&git&add时tab自动完成添加文件名可以只从新文件中选择么。
发信站:&水木社区&(Thu&Nov&25&20:31:34&2010),&站内
以前用hg,如果当前repo只有一个新添加文件,即使不是当前目录,hg&add&&TAB&
也会自动完成添加文件。
刚装了一个git,&git&add&&TAB&现在和普通rm&&TAB&一样,把所有文件都作为可选
项。有办法可以设置么?
※&来源:·水木社区&newsmth.net·[FROM:&202.120.58.*]
Re: git add时tab自动完成添加文件名可以只从新文件中选择么。
发信人:&SYSOPGrandpa&(国务院院士),&信区:&LinuxApp
标&&题:&Re:&git&add时tab自动完成添加文件名可以只从新文件中选择么。
发信站:&水木社区&(Thu&Nov&25&20:32:50&2010),&站内
大约属于bash-completion插件
【&在&monkey&(Conjugate&Priors)&的大作中提到:&】
:&以前用hg,如果当前repo只有一个新添加文件,即使不是当前目录,hg&add&&TAB&
:&也会自动完成添加文件。
:&刚装了一个git,&git&add&&TAB&现在和普通rm&&TAB&一样,把所有文件都作为可选
:&...................
&&&卢沟桥硝烟不散
&&&正义路战火尚存
※&来源:·水木社区&newsmth.net·[FROM:&211.99.222.*]
Re: git add时tab自动完成添加文件名可以只从新文件中选择么。
发信人:&monkey&(Conjugate&Priors),&信区:&LinuxApp
标&&题:&Re:&git&add时tab自动完成添加文件名可以只从新文件中选择么。
发信站:&水木社区&(Thu&Nov&25&20:36:15&2010),&站内
以前装过&&http://repo.or.cz/w/git.git/blob_plain/HEAD:/contrib/completion/git-completion.bash&,&装了之后git&ad&TAB&可以补全为git&add&。
不过这个补全文件好像处理不了文件名,可能需要git自身才能知道那个文件是untracked&
【&在&SYSOPGrandpa&(国务院院士)&的大作中提到:&】
:&标&&题:&Re:&git&add时tab自动完成添加文件名可以只从新文件中选择么。
:&发信站:&水木社区&(Thu&Nov&25&20:32:50&2010),&站内
:&大约属于bash-completion插件
:&【&在&monkey&(Conjugate&Priors)&的大作中提到:&】
:&:&以前用hg,如果当前repo只有一个新添加文件,即使不是当前目录,hg&add&&TAB&
:&:&也会自动完成添加文件。
:&:&刚装了一个git,&git&add&&TAB&现在和普通rm&&TAB&一样,把所有文件都作为可选
:&:&...................
※&来源:·水木社区&newsmth.net·[FROM:&202.120.58.*]
Re: git add时tab自动完成添加文件名可以只从新文件中选择么。
发信人:&dhg&(衣不如新,人不如故),&信区:&LinuxApp
标&&题:&Re:&git&add时tab自动完成添加文件名可以只从新文件中选择么。
发信站:&水木社区&(Thu&Nov&25&20:38:03&2010),&站内
git&add&旧文件
也没事吧。&git&会自动探测的。
【&在&monkey&(Conjugate&Priors)&的大作中提到:&】
:&以前用hg,如果当前repo只有一个新添加文件,即使不是当前目录,hg&add&&TAB&
:&也会自动完成添加文件。
:&刚装了一个git,&git&add&&TAB&现在和普通rm&&TAB&一样,把所有文件都作为可选
:&...................
我不过挨了几下打,他们一个个就有这些怜惜悲感之态露出,令人可玩可观,
可怜可敬.假若我一时竟遭殃横死,他们还不知是何等悲感呢!既是他们这
样,我便一时死了,得他们如此,一生事业纵然尽付东流,亦无足叹惜,冥
冥之中若不怡然自得,&亦可谓糊涂鬼祟矣。
※&来源:·水木社区&newsmth.net·[FROM:&114.244.165.*]
Re: git add时tab自动完成添加文件名可以只从新文件中选择么。
发信人:&monkey&(Conjugate&Priors),&信区:&LinuxApp
标&&题:&Re:&git&add时tab自动完成添加文件名可以只从新文件中选择么。
发信站:&水木社区&(Thu&Nov&25&21:04:08&2010),&站内
哦,我又看了下教程,如果一个旧文件被修改后,也需要git&add&。
hg没有staged的概念(或者是我不知道)
那么git&add不能只简单添加新文件,还要考虑修改过的旧文件。
本来请教这个问题的目的是为了git&add&&TAB&&自动完成来方便输入,倒不是
担心重复add。
【&在&dhg&(衣不如新,人不如故)&的大作中提到:&】
:&标&&题:&Re:&git&add时tab自动完成添加文件名可以只从新文件中选择么。
:&发信站:&水木社区&(Thu&Nov&25&20:38:03&2010),&站内
:&git&add&旧文件
:&也没事吧。&git&会自动探测的。
:&【&在&monkey&(Conjugate&Priors)&的大作中提到:&】
:&:&以前用hg,如果当前repo只有一个新添加文件,即使不是当前目录,hg&add&&TAB&
:&:&也会自动完成添加文件。
:&:&刚装了一个git,&git&add&&TAB&现在和普通rm&&TAB&一样,把所有文件都作为可选
:&:&...................
:&我不过挨了几下打,他们一个个就有这些怜惜悲感之态露出,令人可玩可观,
:&可怜可敬.假若我一时竟遭殃横死,他们还不知是何等悲感呢!既是他们这
:&样,我便一时死了,得他们如此,一生事业纵然尽付东流,亦无足叹惜,冥
:&冥之中若不怡然自得,&亦可谓糊涂鬼祟矣。
:&※&来源:·水木社区&newsmth.net·[FROM:&114.244.165.*]
※&来源:·水木社区&newsmth.net·[FROM:&202.120.58.*]
Re: git add时tab自动完成添加文件名可以只从新文件中选择么。
发信人:&covariant&(协变),&信区:&LinuxApp
标&&题:&Re:&git&add时tab自动完成添加文件名可以只从新文件中选择么。
发信站:&水木社区&(Thu&Nov&25&22:38:12&2010),&站内
git&add&-i
凑合着用吧
【&在&monkey&(Conjugate&Priors)&的大作中提到:&】
:&哦,我又看了下教程,如果一个旧文件被修改后,也需要git&add&。
:&hg没有staged的概念(或者是我不知道)
:&那么git&add不能只简单添加新文件,还要考虑修改过的旧文件。
:&...................
※&来源:·水木社区&newsmth.net·[FROM:&218.22.21.*]
Re: git add时tab自动完成添加文件名可以只从新文件中选择么。
发信人:&monkey&(Conjugate&Priors),&信区:&LinuxApp
标&&题:&Re:&git&add时tab自动完成添加文件名可以只从新文件中选择么。
发信站:&水木社区&(Thu&Nov&25&22:46:14&2010),&站内
thanks,这个强大,这么多选项。
【&在&covariant&(协变)&的大作中提到:&】
:&标&&题:&Re:&git&add时tab自动完成添加文件名可以只从新文件中选择么。
:&发信站:&水木社区&(Thu&Nov&25&22:38:12&2010),&站内
:&git&add&-i
:&凑合着用吧
:&【&在&monkey&(Conjugate&Priors)&的大作中提到:&】
:&:&哦,我又看了下教程,如果一个旧文件被修改后,也需要git&add&。
:&:&hg没有staged的概念(或者是我不知道)
:&:&那么git&add不能只简单添加新文件,还要考虑修改过的旧文件。
:&:&...................
※&来源:·水木社区&newsmth.net·[FROM:&202.120.58.*]
下一页&共1页&

我要回帖

更多关于 gitignore忽略文件夹 的文章

 

随机推荐