Fatal: Unable to checkout working tree - github-for-windows

I am cloning the master branch from a GitHub repo onto my system. It throws this error:
Checking connectivity ...done eate file Icon fatal:
unable to checkout working tree warning: Clone succeeded, but checkout
failed.
I've tried to include the suggestions for line ending problems in Windows as the help doc suggests
but still I am facing the same issue.
How can this be solved?
Windows 7

As I know of, you will want to modify any file names containing: \, /, :, *, ?, ", <, >, or |, as Windows does not comply with those symbols for file naming purposes.
A nice and simple "fix" would be to download the files as a zip archive (which is supported by github), then modify the troublesome file names in File Explorer and then, finally, extract the zip archive in your desired directory.

Some documents in the file name under Windows is illegal. Delete these files to, or use OS X to modify the file name and then clone under Windows.
Git can't checkout a repo from github

Check the error messages carefully. Some file names might be long or some other issues will be there concerning a file. Or maybe there is not enough space. But do git clone on command prompt and go through the last couple of error messages

I got this error trying to download some repos with blacklisted windows filenames:
error: invalid path 'drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c' notice the file is called aux.c which is a banned word in windows because AUX is a namespace for auxiliary port connections. Backwards compatibility to the stone ages basically.
More info: https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file?redirectedfrom=MSDN#win32-device-namespaces
For a full list of reserved keywords see second-last dotpoint: https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file?redirectedfrom=MSDN#naming-conventions

Check the error messages carefully. Some file names might be long or some other issues will be there concerning a file.
PS> git clone https://github.com/jonathanbaraldi/devops-ninja-multicloud-multicluster-pt.git
Cloning into 'devops-ninja-multicloud-multicluster-pt'...
remote: Enumerating objects: 1951, done.
remote: Counting objects: 100% (1951/1951), done.
remote: Compressing objects: 100% (1494/1494), done.
remote: Total 1951 (delta 377), reused 1934 (delta 364), pack-reused 0
Receiving objects: 100% (1951/1951), 6.40 MiB | 19.91 MiB/s, done.
Resolving deltas: 100% (377/377), done.
> error: invalid path 'doc/logos/1*afkK1deEdJkuN3IhnzuzKg.png'
>
> fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'
PS> git status
fatal: not a git repository (or any of the parent directories): .git
PS> cd .\devops-ninja-multicloud-multicluster-pt\
PS> git status
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: .gitignore
deleted: LICENSE
deleted: README.md
deleted: app/api-book/Dockerfile
More info:
https://www.unidadvirtual.com/problema-al-clonar-un-proyecto-con-git-en-windows-error-filename-too-long

My case-specific issue was that someone on my team created a bunch of folders with a space at the end of the name.(e.g. 'my_folder ', with the path looking like 'my_folder2/my_folder /document.pdf')
This seems to be possible on Mac, but Windows doesn't allow spaces at the end of folder names. Removing those spaces solved the issue.

Related

Undo or restore git filter-repo command

In the attempt to get rid of a large history file (.RDataTmp >> 100 Mb) that was causing GitHub to fail its synchronization, I used the git filter-repo command, and specifically the following:
User#mac MainDirectory % git filter-repo --path manuscript/code/.RDataTmp--invert-paths
This resulted in the following messages:
Parsed 142 commits
New history written in 0.92 seconds; now repacking/cleaning...
Repacking your repo and cleaning out old unneeded objects
Updating files: 100% (13768/13768), done.
Enumerating objects: 1, done.
Counting objects: 100% (1/1), done.
Writing objects: 100% (1/1), done.
Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Completely finished after 5.80 seconds.
After this I tried to synch the updated files with the repository, with the following commands:
(base) User#Mac MainDirectory % git stage .
(base) User#Mac MainDirectory % git commit -m "updates"
This had the following result
[master (root-commit) a413463] updates
57 files changed, 0 insertions(+), 0 deletions(-)
The it enter into a create mode 100644 with those 57 files and after this I pushed the repo. The result was a failed push, with the message:
"fatal: No configured push destination. Either specify the URL from
the command-line or configure a remote repository using git remote add
and then push using the remote name"
I then opened GitHub Desktop and pushed to another repository (new one), thinking that all my offline files would have been pushed online in the updated repository.
The conclusion is that I now have a bunch of folders, almost none of the files I had and no history from either the original repo or the new-named one.
Is there a way to revert this process?
Thanks

Not able to perfrom git checkout . Facing error- Fatal: Reference is not a tree error is triggering

I am new to github and when i tried to checkout initial 6.2 from the link mentioned below i am getting below error.
link: https://github.com/trainindata/deploying-machine-learning-models/commits/master
error : fatal : reference is not a tree 75b48f55a9b6dd94c40846f5a66c7f217a1f580b
can anyone help me to solve this error.
Try and clone first, then checkout: it does work:
D:\git\tests>git clone https://github.com/trainindata/deploying-machine-learning-models
Cloning into 'deploying-machine-learning-models'...
remote: Enumerating objects: 538, done.
Receivinremote: Total 538 (delta 0), reused 0 (delta 0), pack-reused 538
Receiving objects: 100% (538/538), 1.33 MiB | 1.25 MiB/s, done.
Resolving deltas: 100% (175/175), done.
D:\git\tests>cd deploying-machine-learning-models
D:\git\tests\deploying-machine-learning-models>git checkout 75b48f55a9b6dd94c40846f5a66c7f217a1f580b
Note: switching to '75b48f55a9b6dd94c40846f5a66c7f217a1f580b'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
Or undo this operation with:
git switch -
Turn off this advice by setting config variable advice.detachedHead to false
HEAD is now at 75b48f5 Section 6.2 - Initial setup

git status working directory nothing to commit, working directory to clean, add , commit NO GO

---I have the same problem but the fix does not seem to work.
I cloned a new repository. From it, I
a. created a new branch with git checkout -b
b. We updated our files in one of the directories, call it GAWBE
c. did our push to that branch
d. inspected the branch on the github.com site, It was fine
Then, I had to update files in a different directory to the master branch.
Call the directory PDBE
Thus, I did
git checkout master
went to the PDBE directory
updated several files there
did the git status
(I got the message
On branch master
nothing to commit, working directory clean
as indicated above)
I did the git branch --set-upstream-to origin/master
Got the message
Branch master set up to track remote branch master from origin.
f. I then did git status
Again, I got
# On branch master
nothing to commit, working directory clean
I tried
git pull origin
From https://github.com/doctorleff/u3e
*branch master -> FETCH_HEAD
Already up to date.
h. I tried git status again with the same working directoyr clean message
and git commit with the same message
Needless to say, I alo checked my .gitignore and .git/info/exclude
Nothing in the latter--former does not specify any of the files in question,
all .java
This as per the Issue 37269222
Also tried the rm -rf .git (Issue 37900326)
also tried git log as per issue 29578546, got error message:
fatal: bad default revision 'HEAD'
Thank you for suggesting that I create a minimal file to show the problem
with my branches and git hub.
On github, I created a new repository. (It is marked public.)
(It is doctorleff/TR
1) I created a directory TR to serve as my repository.
2) I put a single file there IncomeFile.java
3) git init
Told me Initialized empty Git repository in /home/leffstudent/TR/.git
4) git add IncomeFile.java
5) Created gitignore with *.class
6) git add .gitignore
7) git status told me
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: .gitignore
# new file: IncomeFile.java
8) `git commit -m "first commit"
Response was:
[master (root-commit) 6e71c52] first commit
2 files changed, 37 insertions(+)
create mode 100644 .gitignore
create mode 100644 IncomeFile.java
8) git remote add origin https:/github.com/doctorleff/TR.git
9) git push -u origin master
It asked me for my git login and password, then told me
Counting ojbects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done
Writing objects: 100% (4/4), 681 bytes | 0 bytes/s, done.
10) git checkout -b TOMCAT
Told me:
Switched to a new branch 'TOMCAT'
11) I changed IncomeFile.java slightly
12) git add IncomeFile.java
13) git commit -m "testing tomcat branch"
[TOMCAT 54f1b57] testing tomcat branch
1 file changed, 1 insertion(+), 1 deletion (-)
14) git push origin tomcat
Again, I was asked for my github username and passwrd.
Then it told me:
error: src refspect tomcat does not match any.
error: failed to push some refs to 'https://github.com/doctorleff/TR.git'
15) When I did a git status
$On branch TOMCAT
nothing to commit, working directory clean
Same thing if I simply type git status
I tried git check-ignore -v -- IncomeFile.java
Just get back the prompt
My test directory now seems to be working. Thus, I went back to the original cloned repository about which I spoke earlier.
I followed some of the instructions in
StackOverflow issue 4089430. (See link below)
I compared the results on both the working TEST repository and the
repository that does not work. It appears that the local repository
lost track of its remote.
I was thinking, should I do a git clone right into the defective
repositories to reconnect them to the world.
Meanwhile, I worked around my problem by cloning to a different computer,
a Macintosh. I am able to work normally with
the remote repository. Thus, I don't believe there is any problem with it.
And I have, a slightly less convenient, way to proceed with our project.
[How can I determine the URL that a local Git repository was originally cloned from?
I have two transcripts (edited slightly from script). The first is from
the test repository, that shows things working--
thanks for asking me to try that--
and then from the real one
cd TR
git remote show origin
* remote origin
Fetch URL: https://github.com/doctorleff/TR.git
Push URL: https://github.com/doctorleff/TR.git
HEAD branch: master
Remote branches:
TOMCAT tracked
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local refs configured for 'git push':
TOMCAT pushes to TOMCAT (up to date)
master pushes to master (up to date)
git remote show origin
* remote origin
Fetch URL: https://github.com/doctorleff/TR.git
Push URL: https://github.com/doctorleff/TR.git
HEAD branch: master
Remote branches:
TOMCAT tracked
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local refs configured for 'git push':
TOMCAT pushes to TOMCAT (up to date)
master pushes to master (up to date)
git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: IncomeFile.java
#
no changes added to commit (use "git add" and/or "git commit -a")
git checkout -- IncomeFile.java
git checkout TOMCAT
Switched to branch 'TOMCAT'
git status
# On branch TOMCAT
nothing to commit, working directory clean
VI IncomeFile.java
git commit -m "changed mC to Mc"
# On branch TOMCAT
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: IncomeFile.java
#
no changes added to commit (use "git add" and/or "git commit -a")
git add IncomeFile.java
git commit -m "changed mC to Mc"
[TOMCAT 7b842b0] changed mC to Mc
1 file changed, 1 insertion(+), 1 deletion(-)
push origin
fatal: The current branch TOMCAT has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin TOMCAT
git push --setu-upstream origin TOMCAT
Username for 'https://github.com': doctorleff
Password for 'https://doctorleff#github.com':
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 33% (1/3)
Compressing objects: 66% (2/3)
Compressing objects: 100% (3/3)
Compressing objects: 100% (3/3), done.
Writing objects: 33% (1/3)
Writing objects: 66% (2/3)
Writing objects: 100% (3/3)
Writing objects: 100% (3/3), 323 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 0% (0/1) remote: Resolving deltas: 100% (1/1) [K
remote: Resolving deltas: 100% (1/1), completed with 1 local object.[K
To https://github.com/doctorleff/TR.git
ff102ee..7b842b0 TOMCAT -> TOMCAT
Branch TOMCAT set up to track remote branch TOMCAT from origin.
git add IncomeFile.java
"change M[KCa to aC"
[TOMCAT 1a6739c] change Ca to aC
1 file changed, 1 insertion(+), 1 deletion(-)
git push origin
Username for 'https://github.com': doctorleff
Password for 'https://doctorleff#github.com':
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 33% (1/3)
Compressing objects: 66% (2/3)
Compressing objects: 100% (3/3)
Compressing objects: 100% (3/3), done.
Writing objects: 33% (1/3)
Writing objects: 66% (2/3)
Writing objects: 100% (3/3)
Writing objects: 100% (3/3), 324 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 0% (0/1) [K
remote: Resolving deltas: 100% (1/1) Resolving deltas: 100% (1/1), completed with 1 local object.[K
To https://github.com/doctorleff/TR.git
7b842b0..1a6739c TOMCAT -> TOMCAT
THUS, I then tried to go back to one of the repositories that was corrupted.
cd sv/web/src
git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
#LONG LIST OF FILES REMOVED for clarity
#
# Test.java
nothing added to commit but untracked files present (use "git add" to track)
git add Test.java
git commit -m "testing with Test.java"
[master (root-commit) 96c329f] testing with Test.java
1 file changed, 70 insertions(+)
create mode 100644 Test.java origin
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin master
git push --set-upstream origin master
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists
____________________________________________
git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# $
# .RatingEntryServletNew.java.swp
# 11in35tr.xls
# AdminFrontServlet.class
# AdminFrontServlet.java
# AgreementBackend.class
-- REST OF LONG LIST OF FILES GIVEN DELETED FOR BREVITY
nothing added to commit but untracked files present (use "git add" to track)
git remote show origin
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
git config --get remote.origin.url
git remote -v
git ls-remote --get-r[Kurl
fatal: No remote configured to list refs from.
git ls-remote --get-url origin
origin
I also tried the git check-ignore -v -- on several files on the depository.
This was as suggested in the answer.
It just returns--I assume that means that these files are not affected by
any ignore rule.
____ response to VonC ___
In sv/web/src there is a .git subdirectory. FETCH_HEAD is zero bytes
HEAD syas refs: refs/heads/master That file exists and contains a long
hex code which I assume is a commit code, but I cannot find it at github.com.
The root (sv) also has a .git There, HEAD says refs/heads/tomcat
MY other local reposityory copy
sw/web/src also has a .git Its HEAD has
line ref: refs/heads/master But in that case, that file does not exist.
As suggested, I did try git remote -v on the two repositories in
question. Here is the output for sv
git remote -v
githubrepo https://github.com/doctorleff/u3e.git (fetch)
githubrepo https://github.com/doctorleff/u3e.git (push)
origin https://github.com/doctorleff/u3e.git (fetch)
origin https://github.com/doctorleff/u3e.git (push)
The second sw is showing that the repository is hopelessly corrupted:
git remote -v
fatal: Not a git repository (or any parent up to mount point /home)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Since then, I have created a new local clone on this repository from github.
I went back and forth between the two branches and everything is OK.
Thus, please consider this matter closed as not reproducable and no longer
a problem for original poster.
~
I also checked my .gitignore and .git/info/exclude Nothing in the latter--former does not specify any of the files in question, all .java
Double-check with:
git check-ignore -v -- PDBE/yourFile
Sometime, gitignore rules can come from other sources (like an IDE).
The first push of the tomcat branch should be git push -u origin tomcat
If a repo is inside another one, it becomes a nested repo: it might not have an origin, while its parent (which includes said nested repo) have:
Do a git remote -v in each folder.
You can add a remote origin (in the nested repo folder) with git remote add origin /url/remote/repo. Then the push might work better.

warning: Clone succeeded, but checkout failed

C:\Users\User\Desktop>git clone https://github.com/XXXXXXXXXX.git
Cloning into 'one-piece'...
remote: Counting objects: 5463, done.
remote: Compressing objects: 100% (3600/3600), done.
remote: Total 5463 (delta 1539), reused 5359 (delta 1438), pack-reused 0
Receiving objects: 100% (5463/5463), 5.08 MiB | 1.38 MiB/s, done.
Resolving deltas: 100% (1539/1539), done.
Checking connectivity... done.
warning: unable to access 'hackathon/node_modules/noble/node_modules/bluetooth-hci-socket/node_modules/usb
/node_modules/node-pre-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/readable-stream/
node_modules/core-util-is/lib/.gitattributes': Filename too long
fatal: cannot create directory at 'hackathon/node_modules/noble/node_modules/bluetooth-hci-socket/node_mod
ules/usb/node_modules/node-pre-gyp/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/readable
-stream/node_modules/process-nextick-args': Filename too long
warning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry the checkout with 'git checkout -f HEAD'
Try this out:
git config --system core.longpaths true
Source
The following answer worked for me
Open either cmd or git bash and run it as an administrator
Give the following command on the cmd or git bash which you ran as an administrator above
git config --system core.longpaths true
This will allow to access long file names globally
Now you can clone the repositories without any issue with Filename too long
Also check that the repository does not contain a folder called 'con' or 'prn' as these are reserved folders in Windows but are allowed in MacOS.
eg.
src/main/kotlin/con/ will break on a Windows machine
In my case this is how I solved it:
cd into the project directory and un-stage all staged files if any by running git reset
undo all changes in the working directory by running git checkout *
After doing the two steps you should be able to see the project files.

push failed error message github large files

I am trying to install google maps and a few different framework on GitHub.
I am currently using the mac desktop, and I am not understand what I am doing wrong.
Github Mac file error:
File Pods/CardIO/CardIO/libCardIO.a is 96.28 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
File Pods/CardIO/CardIO/libopencv_core.a is 83.71 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
File Pods/CardIO/CardIO/libopencv_imgproc.a is 96.08 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
File Pods/PayPal-iOS-SDK/PayPalMobile/libPayPalMobile.a is 52.72 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
Trace: c683784b6d6c9afc2ef456aabef1b3bf
See http://git.io/iEPt8g for more information.
File Pods/GoogleMaps/Frameworks/GoogleMaps.framework/Versions/A/GoogleMaps is 123.05 MB; this exceeds GitHub's file size limit of 100.00 MB
My current .gitattributes file:
*.jpg filter=lfs diff=lfs merge=lfs -text
*.framework filter=lfs diff=lfs merge=lfs -text
Note that since Git LFS 2.2.0 (June 2017), the preferred way to import large file is with git lfs migrate import --include "*.a".
See the Git LFS 2.2.0 released
If you've tried to push a large file to GitHub without LFS, you might have seen the following error:
$ git push origin master
# ...
remote: error: gh001: large files detected. you may want to try git large file storage - https://git-lfs.github.com.
remote: error: see http://git.io/iept8g for more information.
remote: error: file a.psd is 1.2 gb; this exceeds github's file size limit of 100.00 mb
to github.com:ttaylorr/demo.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git#github.com:ttaylorr/demo.git'
You can use the git lfs migrate info command to see which files are causing the push failure:
$ git lfs migrate info
*.psd 1.2 GB 27/27 files(s) 100%
Using the information above, you can determine which files to pluck out of your history and store in LFS:
$ git lfs migrate import --include="*.psd"
migrate: Sorting commits: ..., done
migrate: Rewriting commits: 100% (810/810), done
master f18bb746d44e8ea5065fc779bb1acdf3cdae7ed8 -> 35b0fe0a7bf3ae6952ec9584895a7fb6ebcd498b
migrate: Updating refs: ..., done
$ git push origin
Git LFS: (1 of 1 files) 1.2 GB / 1.2 GB
# ...
To github.com:ttaylorr/demo.git
* [new branch] master -> master
Please follow this it will fix the issue
https://medium.com/#AyunasCode/how-to-push-large-files-to-github-253d05cc6a09#.kfvv2fu5z