일반적인 git 명령은 다음과 같습니다.
git init
로컬에서 새 저장소를 생성하고 프로젝트 디렉터리에 들어가서 git init를 실행하면 저장소가 초기화되고 .git 파일이 다음 위치에 생성됩니다. 현재 폴더 폴더
git clone
URL에 해당하는 원격 Git 저장소를 가져오고 로컬 복사본을 만듭니다.
일반적인 형식은 git clone [url]입니다.
복제된 저장소는 URL의 마지막 부분 줄 뒤에 이름을 지정하고 폴더를 만듭니다. 특정 이름을 지정하려면 git clone [url] newname으로 지정할 수 있습니다.
git status
상태를 쿼리합니다.
git status -s: -s는 짧음을 의미합니다. -s의 출력 표시에는 두 개의 열이 있습니다. 첫 번째 열은 준비 영역용이고 두 번째 열은 작업 디렉터리용입니다. git log
브랜치의 커밋 기록을 표시합니다.git log --oneline --number: 각 로그는 숫자를 표시하는 한 줄만 표시합니다.
git log --oneline --graph: 브랜치를 그래픽으로 나타낼 수 있습니다. git log Branchname 특정 브랜치의 로그를 표시할 수 있습니다. git log --oneline Branch1 ^branch2, 브랜치 1에서는 커밋을 볼 수 있지만 브랜치 2에서는 볼 수 없습니다. ^는 이 브랜치를 제외한다는 의미입니다. Windows에서는 ^branch2에 따옴표를 추가해야 할 수도 있습니다. git log --design은 태그 정보를 표시합니다. git log --author=[저자 이름]은 작성자의 제출 기록을 지정할 수 있습니다. -since --before --until --after 제출 시간 필터 로그 --no-merges는 병합 커밋을 제외할 수 있습니다. git log --grep 커밋 정보를 기반으로 로그를 필터링합니다. git log -- grep=keywords 기본적으로 git log --grep --author 는 OR 관계입니다. 즉, 둘 중 하나가 충족되면 반환됩니다. AND 관계가 되도록 하려면 추가하면 됩니다. --all-match 옵션. git log -S: 도입된 diff로 필터링합니다. 예: git log -SmethodName(S와 다음 단어 사이에는 등호가 없습니다.) git log - p: 각 커밋에 도입된 패치를 표시합니다. 각 커밋은 스냅샷이며 Git은 각 커밋의 차이를 계산하여 패치로 표시합니다. 또 다른 방법은 git show [SHA]입니다. git log - -stat: 각 커밋에 도입된 변경 사항의 diffstat를 표시합니다. 동일 변경 사항의 관련 정보를 보는 데 사용됩니다. --stat는 -p의 출력보다 간단합니다.git add
, Git에는 새로 추가된 파일이나 새로운 변경 사항을 저장할 수 있는 준비 영역이 있습니다. 커밋할 때 제출된 변경 사항은 디스크의 변경 사항이 아니라 준비 영역에 추가된 마지막 변경 사항입니다. git add . 반복적으로 추가됩니다. 현재 작업 디렉터리의 변경 사항 모든 파일.
git diff
매개 변수 없는 git diff: show diff of unstaged 변경 사항. 이 명령은 작업 디렉터리의 현재 파일과 준비 영역의 스냅샷, 즉 수정 후 임시로 저장되지 않은 변경 사항입니다. 임시로 저장된 파일과 마지막 제출 스냅샷의 차이점을 보려면 다음을 사용하세요.git diff --cached 명령
단계적 변경 사항의 diff를 표시합니다.(Git 1.6.1 이상에서는 git diff --staged 사용도 허용하며 효과는 동일합니다.) 모든 단계적 diff 표시 또는 명시되지 않은 변경 사항입니다. 즉, 작업 디렉터리와 마지막 제출 간의 모든 변경 사항을 비교합니다. 특정 버전 이후 변경된 내용을 보려면 다음을 사용할 수 있습니다. git diff [버전 태그 ] Follow log 명령과 마찬가지로 diff에도 --stat 매개변수를 추가하여 출력을 단순화할 수 있습니다. git diff [branchA] [branchB]를 사용하면 두 브랜치를 비교할 수 있습니다. 실제로는 A에서 B 패치로의 링크는 우리가 원하는 결과가 아닙니다. 일반적으로 우리가 원하는 결과는 두 개의 브랜치가 분리된 후의 변경 사항이며, 이는 다음 명령으로 제공됩니다: git diff [branchA]...[branchB]실제로 다음의 결과입니다: git diff $(git merge-base [branchA] [branchB]) [branchB].
git commit
추가된 변경 사항을 제출합니다.
git commit -m "커밋 메시지"
git commit -a는 먼저 추적된 모든 파일을 삭제합니다. 변경 사항이 추가됩니다. 그런 다음 제출합니다(svn의 단일 커밋과 비슷하며 먼저 임시로 저장할 필요가 없습니다). 트랙이 없는 파일의 경우에도 git add를 해야 합니다.
git commit --amend를 사용하여 커밋을 보완합니다. . 현재 제출 노드와 동일한 상위 노드를 사용하여 새 제출을 수행하며 이전 제출은 취소됩니다. 🎜#
변경 사항 및 커밋을 취소합니다. 여기서 HEAD 키워드는 다음을 참조합니다. 현재 브랜치 끝의 최신 커밋, 즉 저장소에 있는 브랜치의 최신 버전입니다.#🎜 🎜#git 재설정 HEAD: 인덱스에서 파일을 언스테이징하고 포인터를 HEAD으로 재설정합니다. 이 명령은 Staged 상태에서 실수로 추가된 파일을 제거하는 데 사용됩니다. 특정 파일을 개별적으로 대상으로 지정할 수 있습니다. 작업: git Reset HEAD - - -는 생략할 수도 있습니다. #
git Reset --soft HEAD를 특정 커밋 참조로 이동하고 인덱스 및 스테이징은 그대로 유지됩니다. git Reset --hard#🎜 🎜# 파일을 스테이지 해제하고 마지막 커밋 이후 작업 디렉터리의 모든 변경 사항을 실행 취소합니다. 즉, 마지막 제출 후 작업 디렉터리의 모든 준비된 변경 사항과 변경 사항이 사라지고 마지막 제출 상태로 복원됩니다.
여기의 HEAD는 모든 제출의 SHA-1로 작성될 수 있습니다.
소프트 및 하드 매개변수가 없는 git 재설정은 실제로 혼합된 기본 매개변수를 사용합니다.
# 🎜🎜# 요약:git Reset --mixed id는 git의 HEAD를 변경하지만(즉, 커밋 레코드가 변경됨) 파일은 변경되지 않았습니다( 즉, 작업 트리는 변경되지 않았습니다.) 커밋 및 추가 내용을 취소합니다. . git Reset --soft id 실제로 git Reset –mixed id가 추가되었습니다. 완료, 커밋 내용이 취소되었습니다. git Reset --hard id. git 및 파일의 HEAD를 변경합니다. 변경 범위별로 정렬합니다. #🎜🎜 #
소프트(커밋) < 혼합(커밋 + 추가) < 하드(커밋 + 추가 + 로컬 작업)
git revert
Reverse 커밋을 취소합니다. 잘못된 커밋(참조)의 이름(참조)을
git revert HEAD: 최신 커밋을 취소합니다.
#🎜🎜 # git revert는 새로운 역방향 커밋을 생성합니다.#🎜 🎜# git rm file: 준비 영역에서 파일을 제거하고 작업 디렉터리도 제거합니다.
git rm --cached: 준비 영역에서 파일을 제거하지만 작업 디렉터리에 그대로 둡니다. .
git rm --cached는 기능적으로 git Reset HEAD와 동일하며 캐시 영역을 지우지만 작업 디렉터리 트리는 변경되지 않은 채로 둡니다. #🎜🎜 #
git clean
git clean은 작업 디렉터리에서 트랙이 없는 파일을 제거하는 것입니다. 일반적인 매개변수는 git clean -df:#🎜입니다. 🎜#-d는 동시에 디렉터리를 제거하는 것을 의미하고 -f는 강제를 의미합니다. git 구성 파일에서 clean.requireForce=true이기 때문에 -f를 추가하지 않으면 clean이 실행을 거부합니다.# 🎜🎜#
git mv
git rm - - 캐시된 원본 git add new# 🎜🎜 #git stash
현재 변경 사항을 스택에 푸시합니다. git stash는 현재 디렉터리와 인덱스(추적되지 않은 파일 제외)의 모든 변경 사항을 스택에 푸시한 다음 깨끗한 작업 상태, 즉 마지막 커밋 시점을 그대로 둡니다.
# 🎜🎜# git stash list 이 스택의 목록이 표시됩니다. git stash apply: stash(stash@{0})의 이전 항목을 꺼내서 현재 작업 디렉터리에 적용합니다.#🎜 🎜##🎜🎜 # git stash apply stash@{1} 등 다른 항목을 지정할 수도 있습니다. 적용 중에 stash에 있는 항목을 삭제하려면 git stash pop을 사용하면 됩니다.
숨김 항목 삭제:git stash drop: 이전 항목을 삭제합니다. 매개변수를 지정하여 지정된 항목을 삭제할 수도 있습니다.#🎜 🎜## 🎜🎜# git stash clear: 모든 프로젝트 삭제. 브랜치 나열, 브랜치 생성, 브랜치 삭제에 사용할 수 있습니다.
git Branch -v는 각 브랜치의 마지막 커밋을 볼 수 있습니다.# 🎜🎜# git 브랜치: 모든 로컬 제출물 나열 브랜치, 현재 브랜치는 별표로 표시됩니다.
git 브랜치(브랜치 이름): 새 브랜치를 생성합니다(이런 방식으로 브랜치를 생성하면 브랜치는 마지막 커밋을 기반으로 합니다.
git Branch -d (branchname): 브랜치를 삭제합니다.
원격 브랜치 삭제:
git push (remote-name):(branch-name): 원격 브랜치를 삭제합니다.
이는 완전한 명령 형식 때문입니다. Is:
git push 원격 이름 local-branch:remote-branch
그리고 여기서 로컬 브랜치 부분은 비어 있습니다. 이는 원격 브랜치가 삭제되었음을 의미합니다.
git checkout
git checkout ( 브랜치 이름 )
브랜치로 전환합니다.
git checkout -b (브랜치 이름): 새 브랜치를 생성하고 전환합니다.
이 명령은 git Branch newbranch와 브랜치를 결합하는 것입니다. git check out newbranch가 결합된 결과입니다.
Checkout에는 또 다른 기능이 있습니다: 로컬 변경 사항 바꾸기: git checkout --
이 명령은 작업 디렉터리의 파일을 HEAD의 최신 콘텐츠로 바꿉니다.Changes and new 준비 영역에 추가된 파일은 영향을 받지 않습니다.
참고: git checkout filename은 준비 및 제출되지 않은 파일의 모든 변경 사항을 삭제합니다.
git merge
브랜치를 현재 브랜치에 병합합니다.
git merge [alias]/[브랜치]
원격 브랜치를 현재 브랜치에 병합합니다.
충돌이 있어 수동으로 수정해야 하는 경우 다음을 수행할 수 있습니다. git mergetool을 사용하세요.
충돌을 해결한 후 git diff를 사용하면 충돌이 해결되었음을 의미합니다. 이는 일반적으로 커밋을 해제한 후 태그를 추가하여 커밋에 영구 북마크를 생성한다는 의미입니다. 예를 들어, git tag v1.0
git tag -a v1.0, -a 매개변수를 사용하면 주석이 달린 태그를 만들 수 있는 정보를 추가할 수 있습니다.
tag -a 명령을 실행하면 Git이 태그 정보를 입력할 수 있는 편집기를 엽니다.
커밋 SHA를 사용하여 과거 커밋을 제공할 수 있습니다. 태그:
git tag -a v0.9 XXXX
태그는 그렇지 않습니다. 푸시할 때 포함하려면 푸시할 때 --tags 매개변수를 추가하면 됩니다.
가져올 때 브랜치 HEAD Can Reach 태그를 자동으로 가져오고 브랜치 헤드에서 연결할 수 없는 태그는 건너뜁니다. 모든 태그가 포함되도록 하려면 --tags 옵션을 추가해야 합니다.
git remote
원격 저장소 별칭을 나열, 추가 및 삭제합니다.
매번 완전한 URL을 생성하고 Git은 각 원격 저장소 URL에 대한 별칭을 생성한 다음 git 원격을 사용하여 이 목록을 관리합니다.
git 원격: 원격 별칭을 나열합니다.
프로젝트를 복제하면 Git이 자동으로 원래 URL을 추가합니다. 별칭은 다음과 같습니다: Origin.
git 원격 -v: 각 별칭에 해당하는 실제 URL을 볼 수 있습니다.
git 원격 추가 [별칭] [url]: 새 원격 저장소를 추가합니다. git 원격 rm [ alias]: 기존 원격 별칭을 삭제합니다.
git remote rename [old-alias] [new-alias]: 이름을 바꿉니다.
git remote set-url [alias] [url]: 업데이트 URL을 추가할 수 있습니다. push 및 fetch 매개변수를 사용하여 동일한 별칭에 대해 다른 액세스 주소를 설정하세요.
git fetch
원격 저장소에서 새 브랜치와 데이터를 다운로드하세요.
git fetch [alias]를 사용하여 특정 원격 저장소를 가져올 수 있습니다. , 또는 git fetch --all을 사용하여 모든 repo를 가져올 수 있습니다
Fetch는 로컬에 없는 모든 데이터를 가져옵니다. 내려오는 분기는 로컬 분기와 동일합니다. diff, log 등을 볼 수 있고 다른 브랜치에 병합할 수도 있지만 Git에서는 체크아웃을 허용하지 않습니다.
git pull
원격 저장소에서 가져와서 현재 브랜치.
pull == fetch + merge FETCH_HEAD
Git pull은 먼저 git fetch를 실행한 다음 git merge를 실행하고 가져온 브랜치의 헤드를 현재 브랜치에 병합합니다. 이 병합 작업은 새로운 커밋을 생성합니다. --rebase 매개변수를 사용하면 git rebase를 실행하여 원래 git merge를 대체합니다.
git rebase
--rebase는 병합된 커밋을 생성하지 않고 모든 로컬 커밋을 임시로 패치로 저장하여 ".git/rebase" 디렉터리에 넣은 다음 현재 브랜치를 최신 브랜치 팁으로 업데이트하고 마지막으로 저장된 패치가 적용됩니다.
Rebase 프로세스 중에 충돌이 발생할 수 있습니다. Git은 충돌을 중지하고 충돌을 해결한 후 git add를 사용하여 콘텐츠를 업데이트할 필요가 없습니다. :
git rebase --continue는 나머지 패치를 계속 만듭니다.
git rebase --abort는 rebase를 종료하고 현재 브랜치는 rebase 이전 상태로 돌아갑니다.
git push
새로운 브랜치와 데이터를 원격 저장소에 추가하세요.
git push [alias] [branch]
브랜치가 이미 존재한다면 현재 브랜치를 별칭의 [branch] 브랜치에 병합합니다. 존재하지 않으면 업데이트됩니다.
여러 사람이 동일한 원격 저장소에 코드를 푸시하면 Git은 먼저 푸시하려는 브랜치에서 git log를 실행하고 현재 브랜치가 있는지 확인합니다. 팁, 서버의 팁을 로컬 기록에서 볼 수 없다면 이는 로컬 코드가 최신이 아니라는 의미입니다. Git은 푸시를 거부하고 먼저 가져오고 병합한 다음 푸시합니다. . 이렇게 하면 모든 사람의 변경 사항이 고려됩니다.
git reflog
Git reflog는 reflog를 관리하는 명령입니다. Reflog는 브랜치 변경 사항 기록과 같은 참조 변경 사항을 기록하기 위해 git에서 사용하는 메커니즘입니다. 또는 HEAD 참조의 변경 사항.
git reflog가 참조를 지정하지 않으면 기본적으로 HEAD의 reflog가 나열됩니다.
HEAD@{0}은 HEAD의 현재 값을 나타내고 HEAD@{3}은 값을 나타냅니다.
Git은 HEAD에 해당하는 reflog 파일에 변경 사항을 기록합니다. 경로는 .git/logs/HEAD입니다. 브랜치의 reflog 파일은 .git/logs/refs의 하위 디렉터리에 있습니다. 디렉토리.
특수 기호:
^는 제출물에 상위 제출물이 여러 개 있는 경우 ^ 다음에 숫자를 추가하여 상위 제출물을 나타낼 수 있습니다. ^는 ^1과 같습니다.
~
git init
로컬에서 새 저장소를 만들고, 프로젝트 디렉터리를 입력하고, git init를 실행하면 저장소가 초기화되고 . 현재 폴더 아래에 git 폴더가 생성됩니다.
git clone
해당 URL에 해당하는 원격 Git repo를 가져와 로컬 복사본을 생성합니다.
일반적인 형식은 git clone [url]입니다.
복제된 repo는 url Name의 마지막 슬래시를 따서 이름이 지정되며 특정 이름을 지정하려면 git clone [url] newname으로 지정할 수 있습니다.
git status
쿼리 repo.
git status -s: -s 는 short 를 의미하며 -s의 출력 표시에는 두 개의 열이 있으며, 첫 번째 열은 준비 영역용이고 두 번째 열은 작업 디렉터리용입니다
.
git log
브랜치의 커밋 기록을 표시합니다.
git log --oneline --number: 각 로그는 숫자를 표시하는 한 줄만 표시합니다.
git log --oneline --graph: 가능합니다.
git log Branchname은 특정 브랜치 로그를 표시할 수 있습니다.
git log --oneline Branch1 ^branch2, 브랜치 1에서는 커밋을 볼 수 있지만 브랜치 2에서는 볼 수 없습니다. ^는 이 브랜치를 제외한다는 의미입니다. (Windows에서는 ^branch2에 따옴표를 추가해야 할 수도 있습니다.)
git log --design은 태그 정보를 표시합니다.
git log --author=[저자 이름]은 작성자의 제출 기록을 지정할 수 있습니다. --since --before --until --after 제출 시간을 기준으로 로그를 필터링합니다.
--no-merges는 병합 커밋을 제외할 수 있습니다.
git log --grep 커밋 정보를 기준으로 로그를 필터링합니다. grep=keywords
기본적으로 git log --grep --author는 OR 관계 중 하나가 충족되면 반환됩니다. AND 관계가 되도록 하려면 --all-match 옵션을 추가할 수 있습니다.
git log -S: 도입된 diff로 필터링합니다.
예: git log -SmethodName(S와 다음 단어 사이에는 등호가 없습니다.)
git log -p: 각 커밋에 도입된 패치를 표시합니다.
각 커밋은 스냅샷이며 Git은 각 커밋을 기록합니다. diff는 계산되어 패치로 표시됩니다.
또 다른 방법은 git show [SHA]입니다.
git log --stat: 다음에 소개된 변경 사항의 diffstat를 표시합니다. 각 커밋.
은 변경 사항의 관련 정보를 보는 데에도 사용됩니다. --stat의 출력은 -p보다 간단합니다.
git add
在提交之前,Git有一个暂存区(staging area),可以放入新添加的文件或者加入新的改动. commit时提交的改动是上一次加入到staging area中的改动,而不是我们disk上的改动.
git add .
会递归地添加当前工作目录中的所有文件.
git diff
不加参数的git diff:
show diff of unstaged changes.
此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容.
若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用:
git diff --cached 命令.
show diff of staged changes.
(Git 1.6.1 及更高版本还允许使用 git diff --staged,效果是相同的).
git diff HEAD
show diff of all staged or unstated changes.
也即比较woking directory和上次提交之间所有的改动.
如果想看自从某个版本之后都改动了什么,可以用:
git diff [version tag]
跟log命令一样,diff也可以加上--stat参数来简化输出.
git diff [branchA] [branchB]可以用来比较两个分支.
它实际上会返回一个由A到B的patch,不是我们想要的结果.
一般我们想要的结果是两个分支分开以后各自的改动都是什么,是由命令:
git diff [branchA]…[branchB]给出的.
实际上它是:git diff $(git merge-base [branchA] [branchB]) [branchB]的结果.
git commit
추가된 변경 사항을 제출합니다.
git commit -m "커밋 메시지"
git commit -a는 먼저 추적된 모든 파일을 삭제합니다. 변경 사항이 추가됩니다. 그런 다음 제출합니다(svn의 단일 커밋과 비슷하며 먼저 임시로 저장할 필요가 없습니다). 트랙이 없는 파일의 경우에도 git add를 해야 합니다.
git commit --amend를 사용하여 커밋을 보완합니다. . 현재 제출 노드와 동일한 상위 노드를 사용하여 새 제출을 수행하며 이전 제출은 취소됩니다. 🎜#
변경 사항 및 커밋을 취소합니다. 여기서 HEAD 키워드는 다음을 참조합니다. 현재 브랜치 끝의 최신 커밋, 즉 저장소에 있는 브랜치의 최신 버전입니다.#🎜 🎜#git 재설정 HEAD: 인덱스에서 파일을 언스테이징하고 포인터를 HEAD으로 재설정합니다. 이 명령은 Staged 상태에서 실수로 추가된 파일을 제거하는 데 사용됩니다. 특정 파일을 개별적으로 대상으로 지정할 수 있습니다. 작업: git Reset HEAD - - -는 생략할 수도 있습니다. #
git Reset --soft HEAD를 특정 커밋 참조로 이동하고 인덱스 및 스테이징은 그대로 유지됩니다. git Reset --hard#🎜 🎜# 파일을 스테이지 해제하고 마지막 커밋 이후 작업 디렉터리의 모든 변경 사항을 실행 취소합니다. 즉, 마지막 제출 후 작업 디렉터리의 모든 준비된 변경 사항과 변경 사항이 사라지고 마지막 제출 상태로 복원됩니다.
여기의 HEAD는 모든 제출의 SHA-1로 작성될 수 있습니다.
소프트 및 하드 매개변수가 없는 git 재설정은 실제로 혼합된 기본 매개변수를 사용합니다.
# 🎜🎜# 요약:git Reset --mixed id는 git의 HEAD를 변경하지만(즉, 커밋 레코드가 변경됨) 파일은 변경되지 않았습니다( 즉, 작업 트리는 변경되지 않았습니다.) 커밋 및 추가 내용을 취소합니다. . git Reset --soft id 실제로 git Reset –mixed id가 추가되었습니다. 완료, 커밋 내용이 취소되었습니다. git Reset --hard id. git 및 파일의 HEAD를 변경합니다. 변경 범위별로 정렬합니다. #🎜🎜 #
소프트(커밋) < 혼합(커밋 + 추가) < 하드(커밋 + 추가 + 로컬 작업)
git revert
Reverse 커밋을 취소합니다. 잘못된 커밋(참조)의 이름(참조)을
git revert HEAD: 최신 커밋을 취소합니다.
#🎜🎜 # git revert는 새로운 역방향 커밋을 생성합니다.#🎜 🎜# git rm file: 준비 영역에서 파일을 제거하고 작업 디렉터리도 제거합니다.
git rm --cached: 준비 영역에서 파일을 제거하지만 작업 디렉터리에 그대로 둡니다. .
git rm --cached는 기능적으로 git Reset HEAD와 동일하며 캐시 영역을 지우지만 작업 디렉터리 트리는 변경되지 않은 채로 둡니다. #🎜🎜 #
git clean
git clean은 작업 디렉터리에서 트랙이 없는 파일을 제거하는 것입니다. 일반적인 매개변수는 git clean -df:#🎜입니다. 🎜#-d는 동시에 디렉터리를 제거하는 것을 의미하고 -f는 강제를 의미합니다. git 구성 파일에서 clean.requireForce=true이기 때문에 -f를 추가하지 않으면 clean이 실행을 거부합니다.# 🎜🎜#
git mv
git rm - - 캐시된 원본 git add new# 🎜🎜 #git stash
현재 변경 사항을 스택에 푸시합니다. git stash는 현재 디렉터리와 인덱스(추적되지 않은 파일 제외)의 모든 변경 사항을 스택에 푸시한 다음 깨끗한 작업 상태, 즉 마지막 커밋 시점을 그대로 둡니다.
# 🎜🎜# git stash list 이 스택의 목록이 표시됩니다. git stash apply: stash(stash@{0})의 이전 항목을 꺼내서 현재 작업 디렉터리에 적용합니다.#🎜 🎜##🎜🎜 # git stash apply stash@{1} 등 다른 항목을 지정할 수도 있습니다. 적용 중에 stash에 있는 항목을 삭제하려면 git stash pop을 사용하면 됩니다.
숨김 항목 삭제:git stash drop: 이전 항목을 삭제합니다. 매개변수를 지정하여 지정된 항목을 삭제할 수도 있습니다.#🎜 🎜## 🎜🎜# git stash clear: 모든 프로젝트 삭제. 브랜치 나열, 브랜치 생성, 브랜치 삭제에 사용할 수 있습니다.
git Branch -v는 각 브랜치의 마지막 커밋을 볼 수 있습니다.# 🎜🎜# git 브랜치: 모든 로컬 제출물 나열 브랜치, 현재 브랜치는 별표로 표시됩니다.
git 브랜치(브랜치 이름): 새 브랜치를 생성합니다(이런 방식으로 브랜치를 생성하면 브랜치는 마지막 커밋을 기반으로 합니다.
git Branch -d (branchname): 브랜치를 삭제합니다.
원격 브랜치 삭제:
git push (remote-name):(branch-name): 원격 브랜치를 삭제합니다.
이는 완전한 명령 형식 때문입니다. Is:
git push 원격 이름 local-branch:remote-branch
그리고 여기서 로컬 브랜치 부분은 비어 있습니다. 이는 원격 브랜치가 삭제되었음을 의미합니다.
git checkout
git checkout ( 브랜치 이름 )
브랜치로 전환합니다.
git checkout -b (브랜치 이름): 새 브랜치를 생성하고 전환합니다.
이 명령은 git Branch newbranch와 브랜치를 결합하는 것입니다. git check out newbranch가 결합된 결과입니다.
Checkout에는 또 다른 기능이 있습니다: 로컬 변경 사항 바꾸기: git checkout --
이 명령은 작업 디렉터리의 파일을 HEAD의 최신 콘텐츠로 바꿉니다.Changes and new 준비 영역에 추가된 파일은 영향을 받지 않습니다.
참고: git checkout filename은 준비 및 제출되지 않은 파일의 모든 변경 사항을 삭제합니다.
git merge
브랜치를 현재 브랜치에 병합합니다.
git merge [alias]/[브랜치]
원격 브랜치를 현재 브랜치에 병합합니다.
충돌이 있어 수동으로 수정해야 하는 경우 다음을 수행할 수 있습니다. git mergetool을 사용하세요.
충돌을 해결한 후 git diff를 사용하면 충돌이 해결되었음을 의미합니다. 이는 일반적으로 커밋을 해제한 후 태그를 추가하여 커밋에 영구 북마크를 생성한다는 의미입니다. 예를 들어, git tag v1.0
git tag -a v1.0, -a 매개변수를 사용하면 주석이 달린 태그를 만들 수 있는 정보를 추가할 수 있습니다.
tag -a 명령을 실행하면 Git이 태그 정보를 입력할 수 있는 편집기를 엽니다.
커밋 SHA를 사용하여 과거 커밋을 제공할 수 있습니다. 태그:
git tag -a v0.9 XXXX
태그는 그렇지 않습니다. 푸시할 때 포함하려면 푸시할 때 --tags 매개변수를 추가하면 됩니다.
가져올 때 브랜치 HEAD Can Reach 태그를 자동으로 가져오고 브랜치 헤드에서 연결할 수 없는 태그는 건너뜁니다. 모든 태그가 포함되도록 하려면 --tags 옵션을 추가해야 합니다.
git remote
원격 저장소 별칭을 나열, 추가 및 삭제합니다.
매번 완전한 URL을 생성하고 Git은 각 원격 저장소 URL에 대한 별칭을 생성한 다음 git 원격을 사용하여 이 목록을 관리합니다.
git 원격: 원격 별칭을 나열합니다.
프로젝트를 복제하면 Git이 자동으로 원래 URL을 추가합니다. 별칭은 다음과 같습니다: Origin.
git 원격 -v: 각 별칭에 해당하는 실제 URL을 볼 수 있습니다.
git 원격 추가 [별칭] [url]: 새 원격 저장소를 추가합니다. git 원격 rm [ alias]: 기존 원격 별칭을 삭제합니다.
git remote rename [old-alias] [new-alias]: 이름을 바꿉니다.
git remote set-url [alias] [url]: 업데이트 URL을 추가할 수 있습니다. push 및 fetch 매개변수를 사용하여 동일한 별칭에 대해 다른 액세스 주소를 설정하세요.
git fetch
원격 저장소에서 새 브랜치와 데이터를 다운로드하세요.
git fetch [alias]를 사용하여 특정 원격 저장소를 가져올 수 있습니다. , 또는 git fetch --all을 사용하여 모든 repo를 가져올 수 있습니다
Fetch는 로컬에 없는 모든 데이터를 가져옵니다. 내려오는 분기는 로컬 분기와 동일합니다. diff, log 등을 볼 수 있고 다른 브랜치에 병합할 수도 있지만 Git에서는 체크아웃을 허용하지 않습니다.
git pull
원격 저장소에서 가져와서 현재 브랜치.
pull == fetch + merge FETCH_HEAD
Git pull은 먼저 git fetch를 실행한 다음 git merge를 실행하고 가져온 브랜치의 헤드를 현재 브랜치에 병합합니다. 이 병합 작업은 새로운 커밋을 생성합니다. --rebase 매개변수를 사용하면 git rebase를 실행하여 원래 git merge를 대체합니다.
git rebase
--rebase不会产生合并的提交,它会将本地的所有提交临时保存为补丁(patch),放在”.git/rebase”目录中,然后将当前分支更新到最新的分支尖端,最后把保存的补丁应用到分支上.
rebase的过程中,也许会出现冲突,Git会停止rebase并让你解决冲突,在解决完冲突之后,用git add去更新这些内容,然后无需执行commit,只需要:
git rebase --continue就会继续打余下的补丁.
git rebase --abort将会终止rebase,当前分支将会回到rebase之前的状态.
git push
push your new branches and data to a remote repository.
git push [alias] [branch]
将会把当前分支merge到alias上的[branch]分支.如果分支已经存在,将会更新,如果不存在,将会添加这个分支.
如果有多个人向同一个remote repo push代码, Git会首先在你试图push的分支上运行git log,检查它的历史中是否能看到server上的branch现在的tip,如果本地历史中不能看到server的tip,说明本地的代码不是最新的,Git会拒绝你的push,让你先fetch,merge,之后再push,这样就保证了所有人的改动都会被考虑进来.
git reflog
git reflog是对reflog进行管理的命令,reflog是git用来记录引用变化的一种机制,比如记录分支的变化或者是HEAD引用的变化.
当git reflog不指定引用的时候,默认列出HEAD的reflog.
HEAD@{0}代表HEAD当前的值,HEAD@{3}代表HEAD在3次变化之前的值.
git会将变化记录到HEAD对应的reflog文件中,其路径为.git/logs/HEAD, 分支的reflog文件都放在.git/logs/refs目录下的子目录中.
特殊符号:
^代表父提交,当一个提交有多个父提交时,可以通过在^后面跟上一个数字,表示第几个父提交: ^相当于^1.
~
更多Git相关技术文章,请访问Git使用教程栏目!
위 내용은 일반적인 Git 명령 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!