Uploading a directory full of files in GitLab - gitlab

I can't find this topic in the documentation. I'm trying to upload a folder of files to GitLab - i.e. the file containing the entire webpage, (HTML files, assets, JS, etc.) In other words, I want to upload my entire repo to GitLab.
But, I only see the option to upload a single file at a time:
How can I upload a folder of files?

Folder upload is not supported as far as I know.
You could clone the project locally (blue button) creating a local repository and move/cope the folder to your local git-repository.
Then you just git add, git commit and git push everything.
Step by step:
Stage everything in git repo:
git add -A The parameter "-A" stands for "all", it will add every file and folder (apart for empty folders) that are in the repository to the commit.
git commit -m 'your message' will commit all your files/changes locally.
git push will upload your commits so that you can see them on your GitLab page.

Related

git on Linux uploading files from another repository too

I have 2 git repositories, one with 3 files and another one with the same 3 files but similar content. (Like README.md, index.html, etc.)
I used "git add" to add the files and created 2 remotes named "view" and "music".
I added the 3 first files in the first folder with "git add" and commited+pushed them to the view repository.
Then I went to the other folder, added those 3 files with "git add" too and commit+pushed them too, but i suddenly have the other 3 files pushed too.
(The repository "music" has the files from "view" too)
TL;DR: How can I seperate git repositories on Linux
Running CentOS 7 and the newest git update available via yum.
I already tried making 2 different folders and writing "git init" before using the "git add" and other commands to commit + push.
They still returned an error instead of posting duplicates.
The following was used in both folders, but errors happened on the second folder
echo "# testing" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git#github.Username/reponame.git
git push -u origin master
I expected that git would somehow distinguish between multiple repositories, and that I can simply have 2 folders with 2 repositories.
I thought after a git push / commit the "git add array" of files would be empty again and I could add new files for another git commit / push.
How can I commit/push to multiple repositories via the Linux Command Line and push different files to different repositores without them getting mixed up.
EDIT:
The folder structure is as follows:
[usr#servr~]$ ls music/
index.html README.md songs
[usr#servr~]$ ls view/
index.html README.md pics
The exact steps I did:
cd music
git init; git add README.md; git add index.html; git add songs
git commit -m "Initial Commit"; git remote add origin <link2music>; git push -u music master
cd ../view
git add README.md; git add index.html; git add songs; git commit -m "Initial Commit"; git remote add origin <link2view>; git push -u view master
Then the git repository of view suddenly had the README.md of the music repository, and the folder songs too (even though it shouldnt).
I deleted the view repository but kept the music repository on github. (No folder deleted on my Linux machine). I then tried to exactly enter the code from the first snippet (the github offical one) in both folders (with git init too in each folder) and now the music repository, which already existed, threw me the error "! [rejected] master -> master (fetch first)", even though i never deleted the music repository, neither from my machine nor from github. (files are the same on both)
Someone recommended me to try git status, and with that I found out that my problem was the upper-level folder. I accidentally made the upper level folder, above my 2 "repo"-folders, a git repository.
How it should be:
Home
->music(repo .git)
->view(repo .git)
Hot it was (bad):
Home (repo .git)
->music
->view
That means that I didn't push the 2 folders to their respective repositories, but I instead pushed the upper-level folder (my home folder) to the repositories, which of course contained both of my other folders.
I deleted the .git folder from my home, cloned my git repos in a different folder again, and now they work as intended.

how to sync data from local code to heroku git

I build some website using nodeJS that host on heroku. I am using the heroku CLI git. When i want to upload the files i am using the git add . after that git commit -am "some text" and git push heroku master.
The client is update his site and upload new images and content, and when i make some changes in the code and git it again all the work he is done is deleted from server (not from DB).
Add the images folder to the .gitignore file
How can i sync files and code with my local version before i push new version to the heroku server
when you do "git add ." you are telling git to overwrite all your files from git with code on you local.
if you have made changes in only specific files You should always add only those files when doing git add .
you can follow this steps.
git status -> this will show you list of files which are changes and umerged. get hold of file which you changed and want to add in git
Suppose its abc.html (copy full path of file shown in git status)
git add abc.html
git commit -m "some message"
(optional) git pull remote_branch current_branch (this will pull latest code of remote branch to your local). Sometimes you may get conflicts so go ahead open that file and resolve conflicts.
If you are alone working on branch you may not get any conflicts
git push current_branch remote_branch

Can I upload a whole folder in gitlab repo via API?

Gitlab API Commit
This I know but can't find an API to upload a whole folder containing various js, CSS and HTML files into gitlab repo.
Does this help? How do I add files and folders into GitHub repos?
git add <folder>/*
git commit -m "<Message>"
git push
I often use git add -A to add all modified files. But should use git status before and after adding to make sure you see which files have been added before committing.

Delete git LFS files not in repo

I uploaded some files to git LFS and I went over my storage limit. Now, the files I uploaded don't show up in the repo, but I'm still over my data limit and I can't upload anything.
Deleting local Git LFS files
You can delete files from your local Git LFS cache with the git lfs prune command:
$ git lfs prune
✔ 4 local objects, 33 retained
Pruning 4 files, (2.1 MB)
✔ Deleted 4 files
This will delete any local Git LFS files that are considered old. An old file is any file not referenced by:
the currently checked out commit
a commit that has not yet been pushed (to origin, or whatever
lfs.pruneremotetocheck is set to)
a recent commit
for details please go through this link https://www.atlassian.com/git/tutorials/git-lfs
Currently that is not possible via lfs command line. From the Atlassian Git LFS tutorial:
The Git LFS command-line client doesn't support pruning files from the server, so how you delete them depends on your hosting provider. In Bitbucket Cloud, you can view and delete Git LFS files via Repository Settings > Git LFS
GitHub even suggest recreating the repo:
To remove Git LFS objects from a repository, delete and recreate the repository. When you delete a repository, any associated issues, stars, and forks are also deleted.
But it is still good idea to use tools like BFG to clear out large files in history before moving around.

"git add" returning "fatal: outside repository" error

I'm just entering into the wonderful world of git.
I have to submit a bunch of changes that I've made on my program, located in a directory called /var/www/myapp.
I created a new directory /home/mylogin/gitclone. From this directory, I did a git clone against the public repo and I was able to get the latest copy created.
I'm now trying to figure out how to take all the files in my working folder (/var/www/myapp) and "check them in" to the master repository.
From /home/mylogin/gitclone, I tried git add /var/www/myapp but I'm getting an error that the folder I tried to add is outside the repository.
Can you give me a few pointers on what I'm doing wrong? Also, I'd like to add everything, whether it's different from the master or not.
Thanks.
First in the clone folder you can create a Branch (so the master stay untouched)
git branch [branch_name]
After, just copy the files you want from your old folder to the clone folder.
When you are done, just add / commit your change and Merge your branch into the "master" branch. It will look like to something like this:
git add .
git commit -m "Comments"
git checkout master
git merge [new_branch]
Try this tutorial from GitHub.
You'll have to move all the files from /var/www/myapp to /home/mylogin/gitclone and then do a git add . and then git commit -m "Your message".
When upgraded to git version 2.12.2 that error appeared, I nooted the i add the file with a full path like:
git add c:\develop\project\file.text
when removed the full path it start working, like:
git add file.text
To add some files or folder to your repository, they have to be in the folder you created with git clone. So copy/paste your application in your local git folder and then go in it and do git add * and then you'll be able to commit to the server with git commit -m 'message' and finally push the changes to the server with git push
Okay, this error came up for me because I moved the project from one computer to another.
So the git was not able to figure my global git user.name and user.email
I opened the command prompt and specified my old git user.name and user.email from previous computer. Kindly run the following commands and it should be fixed.
cd pathToMyProjectDirectory
git config user.name "myName"
git config user.email "myEmail"
That's because you are versioning stuff inside /home/mylogin/gitclone and git tracks everything inside that folder. You cannot track other folders outside of this repository.
A solution might be create a submodule, or using a symbolic link using ln -s
Git only tracks files and folders within the root folder which includes the .git directory and the subfolders inside root folder. The folder you are trying to add is outside the scope of git.
What would you actually like to do is first git checkout -b myapp which will create and checkout a new branch based on the master branch of the repository you cloned. Then you would actually copy all your files over and commit them with git commit -a -m "Short descriptive name about what you did". The parameter -a you passed to git commit is for including all the changes done to the repository and -m is to include the commit message in the actual command. After that you can either push back to the main repository if you have write access to it or push it to your own public repo or don't push it at all.
What I've described above is pretty much the basics of git. Try reading this book which is pretty descriptive.
Maybe someone comes along having the same trouble like I had:
In my case this error was thrown while using husky (commit hooks) https://github.com/typicode/husky
It was just an error because of encodings. My source was located in a directory that contains a special character ("ö")
Seems like husky uses "git add" with the absolute path of the source which fails somehow at this point
I renamed the path and it worked fine.
This message can also appear when the file name is listed in the .gitignore file.
My scenario is that the git repository's path has symbolic link and git throw out this error when add file say to "/home/abc/GIT_REPO/my_dir/my_file".
and "/home" is actually a softlink to "/devhome".
code ninja gave me some light when I tried to debug this case.
So I tried get the target directory by using the command readlink -f /home/abc/GIT_REPO before run add command.
And then everything works like a charm !
I encountered the issue at Windows box with maven-release-plugin.
The plugin tries to add files using absolute path and I have noticed that the path in the Git add command starts with uppercase D: while the path in Working directory: log line started with lowercase d:
I have added core.ignorecase = true to the Git settings and the issue was gone.

Resources