简体   繁体   中英

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. 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.

I am struggling with this for the last 3 hours. 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).

Yes, I am familiar with terminal.


when I try to do git push as suggested, I see this error:

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.

To transform your folder into a git repository, commit all files and push them onto a server:

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.
  2. Stages all files in the directory to your git staging.
  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:

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.
  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.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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