Git: 분기를 체크아웃할 수 없음 - 오류: pathspec '...'이(가) git에 알려진 파일과 일치하지 않습니다.
아까 일했던 지점을 왜 체크 아웃할 수 없는지 모르겠어요.다음 명령을 참조하십시오(주의:co
입니다.checkout
ramon@ramon-desktop:~/source/unstilted$ git branch -a
* develop
feature/datts_right
feature/user_controlled_menu
feature/user_controlled_site_layouts
master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/feature/datts_right
remotes/origin/master
ramon@ramon-desktop:~/source/unstilted$ git co feature/user_controlled_site_layouts
error: pathspec 'feature/user_controlled_site_layouts' did not match any file(s) known to git.
무슨 뜻인지 잘 모르겠고 구글에서 내가 이해할 수 있는 것을 찾을 수 없을 것 같아.
그 지점을 어떻게 체크하고 어떻게 하면 망가뜨릴 수 있을까요?
갱신:
97e2cb33914e763ff92bbe38531d3fd02408da46 refs/heads/develop
c438c439c66da3f2356d2449505c073549b221c1 refs/heads/feature/datts_right
11a90dae8897ceed318700b9af3019f4b4dceb1e refs/heads/feature/user_controlled_menu
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/heads/master
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/HEAD
e7c17eb40610505eea4e6687e4572191216ad4c6 refs/remotes/origin/develop
c438c439c66da3f2356d2449505c073549b221c1 refs/remotes/origin/feature/datts_right
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/master
23768aa5425cbf29d10ff24274adad42d90d15cc refs/stash
e572cf91e95da03f04a5e51820f58a7306ce01de refs/tags/menu_shows_published_only
429ebaa895d9d41d835a34da72676caa75902e3d refs/tags/slow_dev
디렉토리의 갱신(user_controlled_site_layouts
에 있습니다.refs/heads/feature folder
$ ls .git/refs/heads/feature/
datts_right user_controlled_menu user_controlled_site_layouts
$ cat .git/refs/heads/feature/user_controlled_site_layouts
3af84fcf1508c44013844dcd0998a14e61455034
★★★의 갱신git show 3af84fcf1508c44013844dcd0998a14e61455034
$ git show 3af84fcf1508c44013844dcd0998a14e61455034
commit 3af84fcf1508c44013844dcd0998a14e61455034
Author: Ramon Tayag <xxx@xxxxx.xxx>
Date: Thu May 12 19:00:03 2011 +0800
Removed site layouts migration
diff --git a/db/schema.rb b/db/schema.rb
index 1218fc8..2040b9f 100755
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20110511012647) do
+ActiveRecord::Schema.define(:version => 20110503040056) do
create_table "attachments", :force => true do |t|
t.string "name"
@@ -205,15 +205,6 @@ ActiveRecord::Schema.define(:version => 20110511012647) do
t.integer "old_id"
end
- create_table "site_layouts", :force => true do |t|
- t.string "name"
- t.text "description"
- t.text "content"
- t.integer "site_id"
- t.datetime "created_at"
- t.datetime "updated_at"
- end
-
create_table "site_styles", :force => true do |t|
t.text "published"
t.datetime "created_at"
★★를 해 보세요.git fetch
그러면 로컬 저장소가 Github에서 모든 새로운 정보를 얻을 수 있습니다.새로운 지점에 대한 정보만 얻을 뿐 실제 코드는 얻을 수 없습니다.후, ,,는git checkout
정상적으로 동작합니다.
기본적으로 브랜치는 표시되지만 로컬 복사본은 아직 없습니다.
브랜치를 취득한 후 체크 아웃 하는 것만으로, 다음의 커맨드를 사용할 수 있습니다.
git fetch
git checkout <Branch name here>
차이점을 공유하고 fetch가 어떻게 동작하는지, pull이 어떻게 다른지 보기 위해 아래 이미지를 작성했습니다.
새 지점을 체크아웃할 때 다음 오류가 발생했습니다.
오류: pathspec 'BRANCH-NAME'이 git에 알려진 파일과 일치하지 않습니다.
git checkout origin/<BRANCH-NAME>
분 , , , , , , , , , , , , 。
(원산지에서 추출/)
마지막으로 문제를 해결하기 위해 다음 작업을 수행했습니다.
git remote update
git fetch
git checkout --track origin/<BRANCH-NAME>
이 에러는 리모트에 로컬트래킹 브랜치가 없는 브랜치에 대해서 발생했습니다.리모트 브랜치는 심플한 방법으로 체크 아웃 했습니다만,
git checkout feature/foo
과거에 나는 이 오류를 피하기 위해 해야 했다.
git checkout -t -b feature/foo origin/feature/foo
나도 내가 무슨 짓을 해서 그런 상황에 빠졌는지 모르겠어.
「」가 붙은 브랜치를 .git branch -D yourbranchname
리포(repo)를 다시 풀/풀링하여 로컬브런치를 다시 작성해야 할 수 있습니다.
시험:
git checkout -b yourbranchname
저도 같은 질문이 있고 이 링크에서 정보를 얻었어요: git fetch가 모든 브랜치를 가져오는 것은 아닙니다.
이 상황이 어떻게 발생했는지 알 수 없지만 적어도 해결할 수 있습니다.
스텝 1. "remote.origin"을 확인합니다.fetch" 설정은 다음과 같습니다.
$git config --get remote.syslog.가지고 오다
+refs/heads/private_dev_dev_dev: refs/refs/refs/private_dev_dev_dev
스텝 2. "remote.origin"을 변경합니다.fetch"를 사용하여 모든 것을 가져옵니다.
$git config remote.syslog."+refs/heads/*:refs/remotes/context/*"를 가져옵니다.
$git config --get remote.syslog.가지고 오다
+refs/heads/*:refs/remotes/refs/*
그런 다음 모든 브랜치를 얻기 위해 "git pull"(아마 "git fetch origin"도 작동하지만 시도하지 않았습니다)을 시도할 수 있습니다.
저희 지점에서도 같은 문제가 있었습니다.
이 명령어들은 나에게 효과가 있다.
git fetch --all
git checkout <branch-name>
Git Windows를 하지 않을 경우 해야 합니다.--icase-pathspecs
★★★★★★★★★★★★★★★★★」GIT_ICASE_PATHSPECS = 1
env var 설정, git 패스스펙은 대소문자를 구분합니다.
git checkout origin/FooBranch "Some/Path/To/File.txt"
같지 않다
git checkout origin/FooBranch "some/path/to/file.Txt"
ㅇㅇㅇㅇㅇ로 요.git fetch origin <branchName>:<branchName>
.
동일한 로컬 복사를 가져와 만듭니다.이것에 의해, 다음의 조작이 가능하게 됩니다.
git checkout <branchName>
지점 이름과 커밋되지 않은 파일이 없는 경우 다음을 수행하십시오.
git fetch && git checkout <branch name>
지점을 바꾸다가 그 문제에 직면했어요.
현재의 브랜치를 풀하고 새로운 브랜치를 체크하려고 했는데 동작했다.
git pull // on your old branch git checkout <new_branch>
합니다.git config - git config config - git config.git config config config config config config config config config config config config config config config config config 。.git\config
이전에는
[remote "origin"]
url = http://git.xyz.com/abc-group/pqr.git
fetch = +refs/heads/develop:refs/remotes/origin/develop
수정했습니다.
[remote "origin"]
url = http://git.xyz.com/abc-group/pqr.git
fetch = +refs/heads/*:refs/remotes/origin/*
헤드가 하나의 브랜치만을 가리키고 있기 때문에 다른 기존 브랜치에 대한 참조를 찾을 수 없었기 때문에 *로 변경했기 때문에 원래 브랜치는 모두 체크됩니다.
git pull
이것으로 간단하게 해결했습니다. :)
다음 방법으로 지점을 체크아웃하려고 할 때 이 오류가 발생했습니다.
git checkout branchX
아직 확인해보지 못했습니다.리모콘을 명시적으로 기술했을 때만 동작했습니다.
git checkout --track origin/branchX
그 이유는 2개의 리모트(원산지+)를 가지고 있었기 때문입니다.else)를 설정합니다.두 번째 리모컨이 필요 없어서 제거했더니 작동했어요.다음 방법으로 기본 리모컨을 설정할 수 있습니다.
checkout.defaultRemote=origin
나에게는 통하지 않았다
git clone --depth=1
즉,--single-branch
.
된 료료를 실행하다git clone
고쳐줄 거야
다음 작업을 했을 때 이 정보를 얻었습니다.
- IntelliJ IDE 사용, git에 연결
- 새 파일을 만들어 git에 추가했습니다.
- 새 파일 이름 변경.
디렉토리 체크인을 하려고 했을 때, 이 에러가 발생했습니다.
수정 방법:
나는 git 확장자로 리포(repo)를 열었다.나는 그 파일이 (옛 이름으로) 꾸며져 있는 것을 보았다.하지만 그것이 더 이상 존재하지 않았기 때문에, 그것은 약속될 수 없었다.
나는 이 파일의 스테이징을 해제했다.
그리고 파일(이번에는 올바른 이름)을 git에 다시 추가하여 오류 없이 커밋했습니다.
는 이 , 는 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★.git checkout foo
error: pathspec 'foo' did not match any file(s) known to git.
내가 잘못 알고 있었어.그래서 배운 교훈: 당황하기 전에 어떤 보고서를 보고 있는지 확인하라.
발신지를 했습니다.url
.git/config
,으로써 나의 "" " " " " " ".git/config
되었습니다.[remote "origin"]
표시
fetch = +refs/heads/*:refs/remotes/origin/*
의 행 고정 " " "error: pathspec 'master' did not match any file(s) known to git.
먼저 부모 지점을 체크 아웃합니다.그런 다음 입력합니다.
git fetch --all --prune
git checkout <your branch>
도움이 됐으면 좋겠다!
더 나은/심플한 방법:
git fetch origin yourLocalBranch:yourLocalBranch
git checkout yourLocalBranch
얕은 레포 클론을 작성했을 때 이 에러가 발생하여 솔루션을 입수했습니다.예를 들어 체크 아웃하는 브랜치는 릴리즈/120 입니다.
git ls-remote origin release/120 # make sure the remote branch exits
git fetch origin refs/heads/release/120:refs/remotes/origin/release/120 # fetch to local repo
git co -b release/120 origin/release/120 # checkout to workspace
처음 git을 가지고 놀았을 때도 같은 문제가 있었습니다.내 첫 번째 약속을 시도할 때...
git commit -m 'first commit!'
작전본부에서 언급한 오류가...
error: pathspec 'commit!'' did not match any file(s) known to git.
커밋 메시지에서 키워드를 사용하여 git을 혼동한 것 같아서 다른 단어를 몇 개 더 시도해보니 같은 오류가 발생하였습니다.
마지막으로 메시지에서 큰따옴표를 사용했는데...
git commit -m "first commit!"
이것은 성공적이었습니다...
[master (root commit) 0000000] first commit!
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummyDoc.txt
글쎄요, dev/{feature_branch}와 같은 브랜치는 거의 삭제되지 않았고, 새로운 브랜치 dev를 생성하여 체크아웃을 시도했을 때도 같은 문제가 발생하였습니다.다음 명령을 실행했습니다.
git fetch -p
날 위해 일했어
Windows OS 에서는, 디폴트로 git 는 다음과 같이 인스톨 됩니다.
core.ignorecase = true
즉, git repo 파일은 대소문자를 구분하지 않으므로 이를 변경하려면 다음과 같이 실행해야 합니다.
\yourLocalRepo> git config core.ignorecase false
이 설정은 .disc\config 파일에서 찾을 수 있습니다.
커밋중에 -m 플래그를 제공하지 않는 바보같은 실수를 했습니다(웃음).
git commit -m "commit message in here"
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★♪는 난 named named라는 이름의 줄 알았어요.foo
다음과 같이 합니다.
git checkout foo
다음 정보를 얻을 수 있었습니다.
error: pathspec 'foo' did not match any file(s) known to git.
그런 다음 전체 지점 이름을 시도했습니다.
git checkout feature/foo
날 위해 일했어
제 경우 2개의 브랜치 1) 마스터(라이브 서버용) 2) dev(테스트 서버용)를 가지고 있습니다.각 서버에서 코드를 푸시하도록 여러 개의 리모콘을 설정했습니다. 때, 「지점 전환」이라고 했습니다.error: pathspec 'master' did not match any file(s) known to git.
보면 알 수 요.git remote -v
다른 리모컨을 제거했지만origin
액세스 할 수 있습니다.git remote remove <remote-name>
★★★★★★★★★★★★★★★.git fetch
이제 지점 체크아웃을 할 수 있게 되었습니다.git checkout <branch-name>
.
세 단계
- 'git fetch' 명령을 작성합니다.
- 원하는 브런치를 표시하고 관련 브런치로 전환합니다.
- 그런 다음 명령어 'pool origin your_pool_name'을 작성합니다.
Windows 로 발생하는 경우는, 파일명의 대소문자가 원인일 가능성이 있습니다.
오늘 이 오류가 발생했습니다.새로운 파일을 만들고 GIT에 추가한 후 파일 이름 중 한 글자를 하위에서 상위로 변경했는데, 그 후 아무것도 할 수 없었습니다. - commit, revert, delete from repo.
제가 찾은 유일한 해결책은 이 파일을 GIT에 추가했을 때 파일 이름을 다시 정확히 같은 케이스로 변경한 후 GIT에서 이 파일을 삭제하기 위해 GIT를 실행하고 다시 원하는 대로 파일 이름을 변경하는 것이었습니다.그 변경 후, 저는 리포에 전념하고 문제없이 추진할 수 있었습니다.
Android Studio에서 커밋되지 않은 파일의 이름을 바꾼 후 내게 일어났다.
Git은 더 이상 존재하지 않아도 이전 버전이 저장소에 있는 것처럼 보였다.
fetch, pull, checkout, add all and so on did not help in my case!
그래서 TortoiseGit의 Git GUI를 열어보니, 문제의 원인이 된 정확한 파일이 나와 있었습니다.
그 후 저장소에서 파일을 삭제했습니다.
git rm -r --cached /path/to/affected/file
그리고 문제는 사라졌다.
나는 다른 근본 원인이 있었다.
기본적으로 모든 브랜치 중 jira 발행 키와 일치하는 모든 브랜치를 검색하여 해당 브랜치에서 git branch checkout 명령을 실행하는 스크립트를 가지고 있습니다.
내 경우, 2개 이상의 브랜치가 같은 jira 키를 공유했기 때문에, 전술한 에러로 스크립트가 실패하는 문제가 있었습니다.
사용되지 않은 오래된 브랜치를 삭제하고 단일 브랜치에만 jira 키 참조가 있는지 확인함으로써 문제를 해결합니다.
누군가 사용하길 원할 때를 대비해서 여기 내 코드가 있다.
git remote update
git fetch --all --prune
git branch -r --list *$1* | xargs git checkout --force
이것을 로 보존하다switchbranch.sh
그럼 터미널에서 사용하세요../switchbranch.sh PRJ-1234
대상 파일명의 오타가 아닌지 확인합니다.제가 타이핑해서 무대에 올리려고 했는데
git add includes/connection..php
근데 점 두 개를 쓰고 있는 건 몰랐는데...
git add includes/connection.php
그건 효과가 있다.
언급URL : https://stackoverflow.com/questions/5989592/git-cannot-checkout-branch-error-pathspec-did-not-match-any-files-kn
'IT' 카테고리의 다른 글
필터링된 목록을 VBA로 루프하는 가장 쉬운 방법은 무엇입니까? (0) | 2023.04.28 |
---|---|
Git에서 파일을 분리하는 방법은 왜 두 가지입니까? (0) | 2023.04.23 |
blockblob 업로드 및 content type 설정 (0) | 2023.04.23 |
EPplus를 사용하여 Excel로 DataTable 내보내기 (0) | 2023.04.23 |
웨서버 구성 설정을 사용하여 IIS 7에서 개별 파일의 캐시를 비활성화하려면 어떻게 해야 합니까? (0) | 2023.04.23 |