简体   繁体   English

XCode:使用命令行工具,如何从文件夹创建git并将其导入项目中

[英]XCode : Using the command line tools, how do I create a git from a folder and import that on a project

I have a folder on ~/Documents/Share that contains classes that I use a lot and that work together. 我在〜/ Documents / Share上有一个文件夹,其中包含我经常使用且可以一起使用的类。 I want to transform that folder in a git submodule and then import that on Xcode 5. My idea is to use that git on a lot of projects. 我想在git子模块中转换该文件夹,然后将其导入Xcode5。我的想法是在很多项目中使用该git。

I am struggling with this for the last 3 hours. 最近3个小时,我一直在为此苦苦挣扎。 I have tried a dozen "easy" instructions on the web, none worked. 我已经在网络上尝试了十二条“简单”的说明,但没有一条奏效。

How do I do that? 我怎么做? All I want is to create a local submodule to work on a local project. 我要做的就是创建一个本地子模块来处理本地项目。

Please do not give exoteric ectoplasmic explanations... explain me like I'm five years old (because I never used git before). 请不要给出外在的种质解释...像我五岁那样解释我(因为我以前从未使用过git)。

Yes, I am familiar with terminal. 是的,我熟悉终端。


when I try to do git push as suggested, I see this error: 当我尝试按照建议执行git push时,我看到此错误:

Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 292 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error: 
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error: 
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.

I'm not sure if and how it would work with a local submodule, but we do something similar with our bitbucket account. 我不确定它是否以及如何与本地子模块一起使用,但是我们对我们的bitbucket帐户进行了类似的操作。

To transform your folder into a git repository, commit all files and push them onto a server: 要将文件夹转换为git存储库,请提交所有文件并将其推送到服务器上:

cd yourdirectory
git init (1)
git add . (2)
git commit -m "this is my commit message" (3)
git remote add origin <adress-of-your-remote-git-repository> (4)
git push (5)
  1. Transforms your directory into a local git repository. 将您的目录转换为本地git存储库。
  2. Stages all files in the directory to your git staging. 将目录中的所有文件暂存为git暂存。
  3. Commits your staged files. 提交暂存的文件。
  4. Adds a remote origin to your local repository. 将远程源添加到本地存储库。
  5. Pushes your local repository onto the remote reference. 将本地存储库推送到远程引用上。

You now have a remote repository with all your files. 现在,您将拥有一个包含所有文件的远程存储库。 To use it as a submodule in any git enabled project: 要将其用作任何启用了git的项目中的子模块:

cd yourprojectdirectory
git submodule add <adress-of-your-remote-git-repository> (1)
git submodule update --init --recursive (2)
  1. Adds the remote repository as a new git submodule. 将远程存储库添加为新的git子模块。
  2. Initializes the submodule so it has actual content in it. 初始化子模块,使其具有实际内容。

All thats left now is to open the folder of the added submodule in the finder and drag that folder into your Xcode project. 现在剩下的就是在查找器中打开添加的子模块的文件夹,并将该文件夹拖到您的Xcode项目中。

To update your files with some changes made in the local project, you would make your changes in the project and then you would do the following: 要在本地项目中进行一些更改来更新文件,您将在项目中进行更改,然后执行以下操作:

cd yourprojectdirectory/yoursubmoduledirectory
git add changedfile.m
git commit -m "your commit message"
git push

Of course you would then have to synch those changes to your other projects: 当然,您随后必须将这些更改同步到其他项目:

cd yourotherprojectdirectory/yoursubmoduledirectory
git pull

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM