programing

"git add -A"와 "git add -A"의 차이.

golfzon 2023. 4. 19. 23:45
반응형

"git add -A"와 "git add -A"의 차이.

와의 차이점은 무엇입니까?

이 답변은 Git 버전 1.x에만 적용됩니다. Git 버전 2.x에 대해서는 다른 답변을 참조하십시오.


요약:.

  • git add -A모든 변경 준비

  • git add .는, 삭제하지 않고(현재 디렉토리 및 그 서브 디렉토리상에서) 새로운 파일과 변경을 스테이지 합니다.

  • git add -u 파일 없이 수정 및 삭제 단계


상세:

git add -A git add .; git add -u.

서 은요.git add .즉, 작업 트리를 참조하여 스테이징된 변경에 모든 경로를 추가하는 것입니다.경로가 변경되었거나 신규이며 무시되지 않은 경우 'rm' 액션은 스테이징되지 않습니다.

git add -u는, 이미 추적되고 있는 모든 파일을 참조해, 다른 파일 또는 삭제된 파일의 변경을 스테이지 합니다.새 파일은 추가되지 않고 이미 추적된 파일에 대한 변경만 준비합니다.

git add -A이랬다

같은 할 수 2. 와 for 2 for for for for for for for for for for for for for for for for for((((((((((((((( ( Git 전전 2.x ) 。git add . git status 다를 수 있습니다).

git init
echo Change me > change-me
echo Delete me > delete-me
git add change-me delete-me
git commit -m initial

echo OK >> change-me
rm delete-me
echo Add me > add-me

git status
# Changed but not updated:
#   modified:   change-me
#   deleted:    delete-me
# Untracked files:
#   add-me

git add .
git status

# Changes to be committed:
#   new file:   add-me
#   modified:   change-me
# Changed but not updated:
#   deleted:    delete-me

git reset

git add -u
git status

# Changes to be committed:
#   modified:   change-me
#   deleted:    delete-me
# Untracked files:
#   add-me

git reset

git add -A
git status

# Changes to be committed:
#   new file:   add-me
#   modified:   change-me
#   deleted:    delete-me

Git 버전 1.x

명령어 새 파일 수정된 파일 삭제된 파일 묘사
git add -A ✔️ ✔️ ✔️ 모든 파일(새 파일, 수정 파일, 삭제 파일)을 준비
git add . ✔️ ✔️ 현재 폴더에서만 새 파일 및 수정된 파일 준비
git add -u ✔️ ✔️ 수정 및 삭제된 파일만 스테이징

Git 버전 2.x

명령어 새 파일 수정된 파일 삭제된 파일 묘사
git add -A ✔️ ✔️ ✔️ 모든 파일(새 파일, 수정 파일, 삭제 파일)을 준비
git add . ✔️ ✔️ ✔️ 현재 폴더의 모든 파일(새 파일, 수정 파일, 삭제 파일)을 준비합니다.
git add --ignore-removal . ✔️ ✔️ 새 파일 및 수정된 파일만 준비
git add -u ✔️ ✔️ 수정 및 삭제된 파일만 스테이징

긴 형식 플래그:

  • git add -A git add --all
  • git add -u git add --update

추가 정보:

Git 2.0에서는 디폴트: equals 입니다.

git add <path>''랑 요.git add -A <path>"git add dir/디렉토리에서 삭제한 경로를 확인하고 삭제를 기록합니다.
"Git"git add <path> 제거'

하면 .git add --ignore-removal <path> 또는 할 수 <path>하신면면

git add -A~와 git add :/(top git repo 폴더에서 모든 것을 추가합니다).
2(2015년 11월에서는 git 2.7(2015년 11월)이라는 이름의할 수 .:
Junio C Hamano()gitster의 커밋 29abb33(2015년 10월 25일)을 참조하십시오.


git 2.0 (2014년 1분기 또는 2분기)부터 (작업 트리 내의 현재 경로)에 대해 설명할 때 '를 사용해야 합니다..git add명령도 사용할 수 있습니다.

즉, 다음과 같습니다.

git add -A .는 '아, 아,아, 맞다'에 합니다.git add .; git add -u .

에 해 주세요)..의 경우'git add -A ★★★★★★★★★★★★★★★★★」git add -u)

★★★★★★★★★★★★★★★★★★git add -A ★★★★★★★★★★★★★★★★★」git add -u(git 2.0을 시작하는 경우에만) 현재 경로뿐만 아니라 전체 워킹 트리에서 작동합니다.

이러한 명령어는 Git 2.0의 트리 전체로 동작하여 "" 및 기타 명령어와 git commit -a일관성을 유지할 수 있습니다."를 만드는 메커니즘이 없기 때문입니다.git add -u거짓말하다'처럼 git add -u .중요하다.git add -u없이) 내의 하여 손가락 합니다.이것에 의해 「(패스스펙 없음)」이 으로 「(패스스펙 없음).git add -u .Git 2.0 git git git git git git git git git git git 。

이러한 명령어가 패스스펙 없이 실행되고 현재 디렉토리 외부에서 로컬이 변경되었을 때 경고가 발생합니다. 왜냐하면 이러한 상황에서는 Git 2.0의 동작이 현재 버전과 다르기 때문입니다.

Charles의 지시에 따라 제가 제안한 이해도를 테스트한 결과 다음과 같습니다.

# For the next commit
$ git add .   # Add only files created/modified to the index and not those deleted
$ git add -u  # Add only files deleted/modified to the index and not those created
$ git add -A  # Do both operations at once, add to all files to the index

이 블로그 투고는 이러한 명령어가 어떤 상황에서 적용될 수 있는지를 이해하는 데도 도움이 될 수 있습니다.Git 작업 디렉토리에서 삭제된 파일을 제거하는 입니다.

2.0으로 하다 add . 같다add -A경로에서 입니다.

Git 2.x의 경우:

  • 작업 디렉토리에 직접 있는 경우git add -A ★★★★★★★★★★★★★★★★★」git add .보수로로일일일

  • 작업 디렉토리의 서브디렉토리에 있는 경우는,git add -A작업 디렉토리 전체의 모든 파일이 추가됩니다.git add .현재 디렉토리에서 파일을 추가합니다.

그리고 그게 다에요.

Git 2.0(2014-05-28)으로 변경:

  • -A입니다.
  • 은 이제 "예전부터 사용 가능"으로 사용할 수중에 "예전부터 사용 가능"이 있습니다.--ignore-removal.
  • git add -u ★★★★★★★★★★★★★★★★★」git add -A명령줄에 경로가 없는 하위 디렉토리의 경우 트리 전체에서 작동합니다.

Git 2의 답은 다음과 같습니다.

  • git add . ★★★★★★★★★★★★★★★★★」git add -A .에 new 합니다.
  • git add --ignore-removal .파일 합니다.
  • git add -u .합니다.
  • 점이 없으면 현재 디렉터리에 관계없이 프로젝트의 모든 파일을 추가합니다.

좀 더 알기 쉬운 답변:

아래 둘 다 실행(git add --all과 동일)

git add -A

새 파일 및 수정된 파일 스테이징

git add .

스테이지 수정 + 삭제된 파일

git add -u

다.git add . ★★★★★★★★★★★★★★★★★」git add -A새로운 버전 Git에서 새로운 파일, 변경된 파일 및 삭제된 파일을 모두 준비합니다.

점은 '하다'는 것입니다.git add -A작업 중인 Git 저장소에 속한 "상위, 현재 및 하위 디렉터리"에 있는 파일을 스테이징합니다. ★★★★★★★★★★★★★★★★★★★★★★★★★.git add .는, 현재의 디렉토리와 그 다음에 이어지는 서브 디렉토리에 있는 파일만을 스테이지 합니다(, 상위 디렉토리의 외부에 있는 파일은 스테이지 하지 않습니다).

다음은 예를 제시하겠습니다.

/my-repo
  .git/
  subfolder/
    nested-file.txt
  rootfile.txt

가 「」인 ./my-repo 은 합니다.rm rootfile.txt , , , 「 」cd subfolder그에 , , 음음음음음 , ,git add .삭제한 파일은 스테이징되지 않습니다.하지만 하는 것git add -A명령어를 어디서 실행하든 이 변경은 반드시 이루어집니다.

git add .는 「」와 같습니다.git add -A .현재 폴더와 하위 폴더의 파일만 인덱스에 추가합니다.

git add -A는 작업 트리의 모든 폴더에서 인덱스에 파일을 추가합니다.

추신: Git 2.0(2014-05-28) 관련 정보

나는 이것이 좀 더 명확해졌으면 좋겠다.

!The syntax is
git add <limiters> <pathspec>
! Aka
git add (nil/-u/-A) (nil/./pathspec)

리미터는 -u, -A 또는 0일 수 있습니다.

Pathspec은 현재 디렉토리를 나타내는 파일 경로 또는 점 '.'일 수 있습니다.

Git의 'adds' 방법에 대한 중요한 배경 지식:

  • 보이지 않는 파일, 점(dotfiles)이 앞에 붙은 파일은 Git에 의해 자동으로 인식되지 않습니다.그들은 심지어 '추적되지 않은' 것으로도 결코 나열되지 않는다.
  • 빈 폴더는 Git에 의해 추가되지 않습니다.이러한 파일은 '추적되지 않음'으로 나열되지 않습니다. (회피책은 추적 대상 파일에 공백 파일(보이지 않을 수 있습니다.
  • Git 상태는 하위 폴더에 있는 하나 이상의 파일을 추적하지 않는 한 하위 폴더 정보, 즉 추적되지 않은 파일을 표시하지 않습니다.그 전에 Git은 폴더 전체를 범위 밖의 '빈'으로 간주합니다.추적된 항목이 없습니다.
  • = 또는 은 filespec = '.'(닷)이 아니면 .-A또한 지정됩니다.점은 현재 디렉토리를 완전히 나타냅니다. 위와 아래에 있는 경로를 생략합니다.

이 지식을 바탕으로 위의 답변을 적용할 수 있습니다.

리미터는 다음과 같습니다.

  • -u=--update= 추적된 파일에 대한 하위 집합 => 추가 = 아니요, 변경 = 예, 삭제 = 예.=> 아이템이 추적되는 경우.
  • -A=--all 않다-a(구문 오류 발생) = 모든 추적되지 않은/추적되지 않은 파일의 슈퍼셋. 단, Git 2.0 이전에서는 닷 파일스펙이 지정되면 해당 폴더만 고려됩니다.=> 아이템이 인식되면git add -A찾아서 추가합니다.

pathspec은 다음과 같습니다.

  • 2.0 이전 Git에서는 2개의 리미터(업데이트 및 모두)에 대해 새로운 디폴트는 현재 경로(Git 1.9 이전)가 아닌 작업 트리 전체로 동작합니다.
  • 다만, v2.0에서는, 현재의 패스로 조작을 제한할 수 있습니다.명시적인 닷 서픽스(Git 1.9 또는 그 이전 버전에서도 유효)를 추가합니다.

git add -A .

git add -u .

결론적으로, 제 정책은 다음과 같습니다.

  1. 가파파파/ to to to for ensure ensure for ensure 되어 있는지 확인합니다.git status.
  2. 보이지 않는 파일/폴더로 인해 누락된 항목이 있으면 별도로 추가합니다.
  3. 계십시오.gitignore일반적으로 관심 파일만 추적되지 않거나 인식되지 않도록 파일을 작성합니다.
  4. 저장소의 최상위 수준에서 "git add -A"를 눌러 모든 항목을 추가합니다.이것은 Git의 모든 버전에서 작동합니다.
  5. 원하는 경우 인덱스에서 원하는 항목을 제거합니다.
  6. 큰 버그가 있는 경우 'git reset'을 수행하여 인덱스를 완전히 클리어합니다.

-A옵션을 지정하면 작업 트리와 일치하도록 인덱스 엔트리가 추가, 변경 및 삭제됩니다.

에서는 Git 2 ★★★★-A옵션이 기본입니다.

의 경우.Git 설명서에 따라 업데이트 범위를 현재 있는 디렉토리로 제한하는 기능이 추가되었습니다.

'아니오'의 경우<pathspec>A 옵션을 사용하면 전체 작업 트리의 모든 파일이 업데이트됩니다(Git의 이전 버전은 업데이트를 현재 디렉토리와 하위 디렉토리로 제한하기 위해 사용됨).

싶은 은, 이 '이'가 '이'의 경우입니다.--interactive ★★★★★★★★★★★★★★★★★」-p합니다.git add 동작합니다(업데이트시).-u플래그가 사용되었으며 새 파일을 추가하지 않았습니다.

다른 SCM 툴에서는 볼 수 없는 git의 스테이징 메커니즘을 싫어합니다.그래서 항상 사용하고 있습니다.

\git add --all && \git commit --all

((록)가 있어도\git add --all,\git commit


★★★★★★에add:

--no-ignore-removal  --all     | add, modify, and remove index entries to match the working tree
--ignore-removal     --no-all  | add, modify             index entries to match the working tree

--intent-to-add                | add an entry for the path to the index,  with no content

-A 말하다--all

git add <pathspec>음음음같 뭇매하다

2.: Git 2.35.1의 경우:git add --all <pathspec>
버전의 Git: Git:git add --no-all <pathspec>

★★★★★★★★★★★★★★★★★.git add에 붙지 git add --all아무것도 하지 않습니다.

여기에 이미지 설명 입력

git add --all(무락))<pathspec>): 전체 작업 트리의 모든 파일을 처리합니다(현재 디렉토리와 하위 디렉토리로 업데이트를 제한하기 위해 사용된 Git의 이전 버전).

git --모두 커밋

수정 및 삭제된 파일을 자동으로 준비하도록 명령어를 전달합니다. Git에 알리지 않은 새 파일은 영향을 받지 않습니다.

언급URL : https://stackoverflow.com/questions/572549/difference-between-git-add-a-and-git-add

반응형