본문 바로가기
git & gitlab

git 깃 명령어

by Ele(단단) 2021. 6. 26.
반응형

GIT 초기화 부터 시간여행하는 명령어 모음

git init

> 현재 디렉토리를 로컬 저장소로 만든다

git status

> 커밋하지 않은 변경사항이 있는지 확인한다.

⛔️ commit 하기전에는 항상 하기! 

git add [filename]

> filename 을 stage area에 등록시킨다, untrack 파일을 track 상태로 전환한다.

git commit -m “message” 

> work1 이라는 작업설명을 첨부해서 새로운 버전을 만든다. 

git log --oneline

> git 로그 기록 한줄로 볼 수 있다. 

Untracked file

> 한번도 add 되지 않은 파일(git저장소에는 있지만, git이 관리하고 있지 않은 파일) 

git restore --staged [filename]

> add된 파일을 취소할 수 있다. 

git commit -am “message” 

> tracked file에 변경사항이 있을 시 add와 commit을 동시에 할 수 있다. 

(git add -u && git commit과 같음. 여기서 -u는 update를 의미)
(untracked file은  따로 add 해주어야 한다) 

git add .

> 현재 디렉토리 내 모든 파일을 add(가급적 지양) 

git reset HEAD~1

> 가장 마지막의 commit을 취소. 변경사항을 git log로 확인할 것

 git config --global core.autocrlf true

 

> crlf를 자동으로 lf로 바꿔주는 기능

git checkout [commit ID]

> 과거로 돌아가기, HEAD를 해당 commit ID 버전으로 위치 시킴 

git checkout master

> 현재로 돌아오기(HEAD -> master), HEAD를 master로 해당하는 버전으로 위치 시킴

git config --global alias.l "log --oneline --all"

> log --oneline --all 을 l로 별명을 지정

> git log --oneline --all 대신 git l 로 사용 가능

git config --global --unset alias.[설정한 별칭] 

> 설정한 별칭 제거

> ex) git config --global --unset alias.l

> 참고: alias가 아닌 다른 옵션도 제거 가능 (ex. git config --global --unset user.email)

git reflog : 개인적으로 많이 쓴다.

git branch [branch_name]

> Ip 주소 같은 commit id가 domain name 같은 branch name이 생김

> 자동으로 checkout 되지 않기 때문에 $ git checkout branch_name으로 HEAD pointer 변경 필요

> HEAD pointer가 위치하고 있는 곳에 branch 생성, 뒤에 commit ID를 추가하면 해당 위치에 branch 생성

git branch -d [branch_name]

> branch 삭제

> HEAD pointer가 가리키고 있으면 삭제 불가능, git checkout으로 다른 곳을 가리킨 후 삭제

git log --graph --all

> 현재 존재하는 모든 브랜치를 시각적으로 볼 수 있음

 

  

git remote add origin [GitLab Clone with HTTPS 주소]

> 현재 로컬 저장소와 연결할 원격 저장소의 주소를 “origin”이라는 별칭으로 추가함

git push --set-upstream origin master

> --set-upstream은 원격 저장소를 설정한다는 의미로 현재 위치한 브랜치와 origin에 해당하는 원격 저장소의 master 브랜치를 연결하겠다.

(Branch 'master' set up to track remote branch 'master' from 'origin', origin의 master 브랜치를 tracking하겠다.)

git commit --amend -m “메시지”

> 바로 앞 커밋 메시지 변경

git clone [GitLab Clone with HTTPS 주소] .

> Git lab에서 origin 디렉토리 불러오기 (마지막에 한칸 띄우고 마침표(.) 찍기)

> 주소 뒤에 마침표(.)는 현재 디렉토리에 clone 한다는 뜻

> 참고) 마침표 두 개(..) : 부모 디렉토리, d : 디렉토리 / - : 파일 

 

 

로컬에서 새로운 커밋을 하게 되면 origin/master 브랜치가 가리키는 곳이 아래와 같이 HEAD->master가 가리키고 있는 같은 곳으로 변경된다.

git clone [원격 레포지토리 https 주소] [로컬 디렉토리 경로]

> 주소에 해당하는 Git 저장소를 복제하여 새로운 디렉토리에 저장한다.  

(+) git init이나 git clone 중 하나만 실행해서 git을 시작한다.   

git clone [원격 레포지토리 https 주소] .

> 현재 디렉토리를 레포지토리로 지정

 

리눅스 명령어 

cd [디렉토리 명]

> 디렉토리 이동

> cd ~

> 홈 directory로 이동 (pwd를 통해 현재의 디렉토리를 확인할 것)

> ‘~’ : 홈 directory 의미

 

cat [파일 명]

> 파일의 내용 출력 (혹은 >나 >>로 기록도 가능) 

git add exp.txt; git commit -am “exp 1”;

> 세미콜론 (;)을 사용하여 여러 명령어를 자동화

> 세미콜론 앞의 명령이 종료되면 무조건 다음 명령을 실행

git add exp.txt && git commit -am “exp 1” && …;

> 세미콜론 대신 &&를 사용하면 앞에 명령어 성공시 다음 명령어가 실행 (안정성) 

rm -r(f) [디렉토리 명] 

> 디렉토리 삭제

ex) rm -r(f) [w] + tab 키

=> w로 시작하는 디렉토리 이름 자동완성

 

회사에서 작업시  

0 회사에서 버전 1이 원격저장소에 저장되어 있다.

1 집에가서 작업을 해서 버전 2를 만들려고 한다.

2 원격저장소에 있는 버전1을 clone해서 가져온다.

3 버전 2를 제작 후 add, commit 하고 원격저장소에 올린다. (집에서)

4. 회사로 가서, 버전 2를 pull해서 가져와서 계속 작업한다.  

(+) 변경 전과 후의 차이점을 확인한 후에 commit 하는 습관을 기르자.  

반응형

'git & gitlab' 카테고리의 다른 글

.gitlab-ci.yml 로 gitlab pages 사용  (0) 2023.03.22
CI/CD  (0) 2021.06.25
개발자 그리고 git  (0) 2021.06.24
git 의미 역할 이유 명령어  (0) 2021.06.24

댓글