“ ร้ายแรง: ไม่ใช่ที่เก็บ git (หรือไดเร็กทอรีหลักใด ๆ )” จากสถานะคอมไพล์


102

คำสั่งนี้ใช้เพื่อรับไฟล์และคอมไพล์:

git clone a-valid-git-url

ตัวอย่างเช่น:

git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

อย่างไรก็ตามgit status(หรือคำสั่ง git อื่น ๆ ) จะให้fatal: Not a git repository (or any of the parent directories)ข้อผิดพลาดข้างต้น

ผมทำอะไรผิดหรือเปล่า?


6
รหัสเช็คเอาต์อยู่ในliggghtsไดเร็กทอรี
Eugen Constantin Dinca

คำตอบ:


167

คุณต้อง cd ลงในไดเร็กทอรีก่อน:

$ git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts
Cloning into 'liggghts'...
remote: Counting objects: 3005, done.
remote: Compressing objects: 100% (2141/2141), done.
remote: Total 3005 (delta 1052), reused 2714 (delta 827)
Receiving objects: 100% (3005/3005), 23.80 MiB | 2.22 MiB/s, done.
Resolving deltas: 100% (1052/1052), done.

$ git status
fatal: Not a git repository (or any of the parent directories): .git
$ cd liggghts/
$ git status
# On branch master
nothing to commit (working directory clean)

3
นอกจากนี้คุณยังได้รับข้อผิดพลาดนี้เมื่อท่อ git เป็นไดเร็กทอรี. git ของตัวเอง ฉันดึงข้อมูลและเห็นข้อความ "บรรจุที่เก็บโดยอัตโนมัติในพื้นหลังเพื่อประสิทธิภาพสูงสุด" จากนั้นฉันพยายามดำเนินการเพิ่มเติม แต่ได้รับข้อความแสดงข้อผิดพลาดของ OP เท่านั้น โฟลเดอร์. git ของฉันยังคงอยู่ที่นั่น แต่ git ได้รับความเสียหายอย่างใด การรันgit initแก้ไขปัญหา
Cerin

2
ฉันโง่แค่ไหน ลองใช้สถานะ git ก่อนไปที่ไดเร็กทอรี :) ขอบคุณมาก
webHasan

13

ฉันเพิ่งได้รับข้อความนี้และมีคำตอบง่ายๆก่อนที่จะลองใช้คนอื่น ที่ไดเร็กทอรีหลักให้พิมพ์git init

สิ่งนี้จะเริ่มต้นไดเร็กทอรีสำหรับ git จากนั้นgit addและgit commitควรทำงาน


ก่อนหรือหลังการโคลน? สิ่งนี้จะสร้าง git repo ใหม่หรือไม่ วิธีนี้จะทำงานร่วมกับ git repo ที่มีอยู่และประวัติที่ถูกโคลนได้อย่างไร จะเกิดอะไรขึ้นกับการremoteตั้งค่าดั้งเดิมภายใต้ข้อตกลงนี้
Michael Durrant

11

ในกรณีของฉันเป็นตัวแปรสภาพแวดล้อมGIT_DIRซึ่งฉันเพิ่มเพื่อให้เข้าถึงได้เร็วขึ้น

สิ่งนี้ยังทำลาย repos ในพื้นที่ของฉันทั้งหมดใน SourceTree :(


5

บางครั้งเป็นเพราะ ssh ดังนั้นคุณสามารถใช้สิ่งนี้:

git clone https://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

แทน:

git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

ฉันได้รับข้อผิดพลาดเพียงแค่พยายามโคลน repo ไปยังเครื่องในพื้นที่ของฉัน ฉันเปลี่ยนจากโดยใช้ https: // TO git: // และโคลนได้สำเร็จ ขอบคุณสำหรับการชี้ฉันไปในทิศทางที่ถูกต้อง
Scott Wade

4

ในกรณีของฉันฉันมีปัญหาเดียวกันในขณะที่ฉันลอง git - คำสั่งใด ๆ (เช่นสถานะ git) โดยใช้ windows cmd ดังนั้นสิ่งที่ฉันทำคือหลังจากติดตั้ง git สำหรับ window https://windows.github.com/ ในตัวแปรสภาพแวดล้อมแล้วให้เพิ่ม class path ของ git บน "PATH" varaiable โดยปกติ git จะติดตั้งC:/user/"username"/appdata/local/git/binเพิ่มสิ่งนี้บน PATH ในตัวแปรสภาพแวดล้อม

และอีกสิ่งหนึ่งใน cmd ไปที่ที่เก็บ git หรือ cd ของคุณไปยังตำแหน่งที่โคลนของคุณอยู่บนหน้าต่างของคุณโดยปกติแล้วพวกมันจะถูกเก็บไว้ในเอกสารภายใต้ github

cd Document/Github/yourproject

หลังจากนั้นคุณสามารถมีคำสั่ง git ใด ๆ


3

ฉันมีปัญหาอื่น ฉันอยู่ในไดเร็กทอรี git แต่ไปที่นั่นผ่าน symlink ฉันต้องเข้าไปในไดเร็กทอรีโดยตรง (เช่นไม่ผ่าน symlink) จากนั้นก็ใช้งานได้ดี


3
git clone https://github.com/klevamane/projone.git
Cloning into 'projone'...
remote: Counting objects: 81, done.
remote: Compressing objects: 100% (66/66), done.
remote: Total 81 (delta 13), reused 78 (delta 13), pack-reused 0
Unpacking objects: 100% (81/81), done.

คุณต้อง "cd projone"

จากนั้นคุณสามารถตรวจสอบสถานะ


เหตุผลหนึ่งที่ทำให้สิ่งนี้สังเกตเห็นได้ยากในตอนแรกฉันเป็นเพราะคุณสร้างโฟลเดอร์ที่มีชื่อเดียวกันแล้วในคอมพิวเตอร์ของคุณและนั่นคือที่ที่คุณโคลนโครงการเข้ามาดังนั้นคุณต้องเปลี่ยนไดเรกทอรีอีกครั้ง



3

ข้อผิดพลาดนี้ได้รับการแก้ไขเมื่อฉันพยายาม initialising คอมไพล์โดยใช้init คอมไพล์ มันได้ผล


2

ในกรณีของฉันที่เก็บดั้งเดิมเป็นที่เก็บข้อมูลเปล่า

ดังนั้นฉันต้องพิมพ์ (ใน windows):

mkdir   dest
cd dest
git init
git remote add origin a\valid\yet\bare\repository
git pull origin master

วิธีตรวจสอบว่าที่เก็บเป็นที่เก็บเปล่าหรือไม่:

git rev-parse --is-bare-repository 

1

หลังจากที่คุณโคลน repo แล้วคุณจะต้อง cd (เปลี่ยนไดเร็กทอรีปัจจุบันของคุณ)ไปยังโฟลเดอร์ที่โคลนใหม่

git clone https://User_Name@bitbucket.org/Repo_Name.git

cd Repo_Name

1

หากโซลูชันโครงการที่มีอยู่มีการวางแผนที่จะย้าย TSF ใน VS Code:

เปิด Terminal และเรียกใช้คำสั่งต่อไปนี้:

  1. เริ่มต้น git ในโฟลเดอร์นั้น (ไดเรกทอรีราก)

    git init

  2. เพิ่ม Git

    git add .

  3. เชื่อมโยง TSf / Git ของคุณกับโปรเจ็กต์นั้น - {url} แทนที่ด้วยที่อยู่คอมไพล์ของคุณ

    git remote add origin {url}

  4. ยอมรับการเปลี่ยนแปลงเหล่านั้น:

    git commit -m "initial commit"

  5. Push - ฉันพุชรหัสเป็น version1 คุณสามารถใช้ชื่อใดก็ได้สำหรับสาขาของคุณ

    git push origin HEAD:Version1


0

ทันใดนั้นฉันได้รับข้อผิดพลาดเช่นในไดเร็กทอรีใด ๆ ที่ฉันพยายามเรียกใช้คำสั่ง git จาก:

fatal: Not a git repository: /Users/me/Desktop/../../.git/modules/some-submodule

สำหรับฉันปรากฎว่าฉันมีไฟล์ที่ซ่อนอยู่.gitบนเดสก์ท็อปพร้อมเนื้อหา:

gitdir: ../../.git/modules/some-module

ลบไฟล์นั้นและแก้ไข


0

ฉันมีปัญหาเดียวกันจากเครือข่ายสำนักงานของฉัน ฉันใช้คำสั่งนี้ แต่มันใช้ไม่ได้กับurl ของฉัน ดังนั้นก่อนหน้านี้ $ git clone https://gitlab.com/omsharma/Resume.git

หลังจากฉันใช้ URL นี้: $ git clone https://my_gitlab_user@gitlab.com/omsharma/Resume.git ลองใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.