본문 바로가기
info : 유용한 정보, 체험기

Git 기초 1 - vscode 이용해서 쉽게 깃 허브 연동, 깃 커밋하기, gitignore 설정

by 퇴근길에 삼남매가 알려드림 2022. 10. 23.

깃 허브 데스크탑 없이 source tree 소스 트리 없이 visual studio code (vscode)에서 깃 커밋을 할 수 있다.

본 글에서는 그 방법을 알려드리도록 하겠다.

 

왜 vscode에서 git을 이용하는가? visual studio git hub의 연동은 소스 트리보다 훨씬 스무스하다.

참고로, git을 할 때는 git private repository 나 git public repository나 차이가 없다.

그냥 지금 있는 레파지토리의 버전을 관리하는데 쓰는 것이 바로 git 깃 이다.

또한, 운영체제에 따라서 해야 하는 일들이 달라질 때도 있는데 visual studio git hub 연동 방법이나 후에  visual studio git hub 깃을 이용할 때도 같은 방식으로 해서 편하다.

 

필자는 git hub mac 유저로 초반에는 깃 허브 데스크톱을 이용했다.

후에 visudal studio git hub 연동을 하고, visdual code를 이용하니 굳이 깃 허브 데스크톱을 이용할 필요성을 못 느꼈다.

간단한 작업을 할 때는 visual code로 적성하고 바로 visual code 안에서 커밋을 했다. 

 

물론 변화가 많다면, 그냥 커맨드 라인을 이용하거나, 트리 형식으로 UI가 잘 되어 있는 소스 트리가 편할 수 있다.

그게 아닌 작은 변화는 그냥 vscode에서 add ( stage), commit, push. 등 다 된다. 

후에 윈도우 운영체제를 쓰게 되었는데, 윈도우의 명령어가 다른 것도, 물론 다른 프로그램을 깐 것도 있지만 git windows 도 그냥 visudal studio git hub 연동을 한 후에는 편하게 썼다.

code vidual studio 

 

 

vscode git start. 

일단, 비주얼 스튜디오 코드에서, 작성할 깃 레파지토리를 연다.

초기 연동은 이전 글을 참고하면 된다. : visual studio git hub 연동 

왼쪽 사진은 깃 커밋을 해야 하는 파일, 오른쪽은 비쥬얼 스튜디오에서 source control 즉, git을 할 수 있는 곳. 숫자가 깃을 해야하는 파일 숫자이다.
왼쪽 사진은 깃 커밋을 해야 하는 파일, 오른쪽은 비쥬얼 스튜디오에서 source control 즉, git을 할 수 있는 곳. 숫자가 깃을 해야하는 파일 숫자이다.

 

이렇게 새로운 파일을 만들었다면 파일 이름 옆에 'U'라고 쓰인 것을 볼 수 있다.

'Untracked'이라는 표시인데, 간단하게 원격 서버에서는 이 파일을 인지하지 못하니, 앞으로 변화를 추적할 수 있게 변화를 저장하고, 원격 서버에 올려달라, 는 뜻이다.

만약 파일을 수정한 상태면 U 대신 M이라고 쓰여있다.  파일을 지웠다면 D라고 쓰여있다. 이 경우도 모두 변화를 stage/add 하고 커밋하고, 원격 서버에 올려주는 아래의 과정을 거쳐야 한다. 

 

그다음, 위의 오른쪽 사진처럼 동그라미 세 개가 연결된 아이콘을 클릭한다.

 

commit 버튼
commit 버튼

 

이제 '메세지' 'Commit , 커밋' 'Changes'를 볼 수 있다.

sample.py옆에 +를 누르면 이 변화가 staged 되었다.

즉 인덱스가 된 상태로 이걸 원격 서버에 올릴 준비가 된 것이다.

만약 휘어진 화살표를 누르면 파일의 '변화'를 버리겠다는 뜻이다.

즉, 되돌리기!. 마지막 커밋한 상태로 파일이 되돌아간다. 

 

커밋 되돌리기
커밋 되돌리기

 

+를 눌러서 Staged를 했다면 이제  커밋 메시지를 쓰고  Commit을 누른다 (git commit과 동일).

그다음,  Sync changes (git push와 동일)를 눌러서 원격 서버에 업데이트를 하면 된다.

또는 오른쪽의 점 세 개 버튼을 누르면 push 가 보인다, 이걸 이용해도 된다. 

 

커밋 메시지도 사람들 간에 코드를 잘 이해하기 위해서 정해진 형식이 있다. 이 부분도 다음에 다루어 보도록 하자. (지금처럼 쓰면 안 된다..) 

 

 

 

gitignore 트랙 하고 싶지 않은 파일은 여기로! 

만약, 내가 이 파일은 바꾸긴 했는데, 이걸 원격 서버에 저장하거나 커밋하고 싶지 않다면 이 파일을 'git ignore'에 저장하면 된다.

이게 ignore 되는 파일이라고 config를 한다.

 

두 가지 방법이 있다.

글로벌하게 바꾸는 거랑 특정 레파지토리에 바꾸는 것.

어찌 되었든 

해당 폴더에 .git/config 파일이 있을 것이다. 또는 홈 디렉토리에 .gitcofig 파일이 있을 것이다.

     둘의 차이는 각 레파지토리마다 설정해 주는 것과 항상 적용되는 기본 값을 설정하는 것의 차이이다.

 

이 파일을 보면 여러 구간이 있는데 이중 [core]라고 쓰인 곳에 

excludesfile =[.gitnore 파일 위치] 라고 쓰면 된다.

아래 같은 예시가 가능하다. 

excludesfile = /home/username/.gitignore 

excludesfile = /home/username/repo1/.gitignore 

excludesfile = /home/username/.gitignore 
excludesfile = /home/username/repo1/.gitignore

configuration 파일을 수정하는 것에서 눈치챘듯이 이건 core.excludesFile 라는 것을 통해서 바꾸어 줄 수도 있다.

즉, git config core.excludesFile ~/.gitignore

git config core.excludesFile ~/.gitignore

이런 식으로 말이다.

 

어떤 것들을 'ignore' 무시하고 싶을까? 

바로 임시 파일 cached이나 데이터 파일 , .DS_Store , .ipynb_checkpoints 파일 등이다.

이 파일들의 이름, 또는 이름의 형태를 gitignore 또는 gitignore_global 에 저장된다.

 

데이터 파일을 무시하는 이유는 여러 가지가 있지만, 용량이 100MB 이상은 깃 허브에서 거부하기 때문도 있다.

이러면 이제 git push 할 때 에러 난다.

데이터 파일 등도 같이 저장하고 변화를 추척하려면 아마존의 s3 등을 쓴다.

깃 허브는 주로 소스 코드를 관리하는 곳이다. 

(물론 편의에 따라서 글 쓴 걸 저장할 수 도 있다. - 뭐가 어찌 되었던 용량이 가벼운 것!) 

본론으로 돌아와 이렇게 무시할 파일들의 형식을 git ignore에 저장하면 변화가 추적되지 않는다. 

 

비주얼 스튜디오 코드에서 Source control에서 해당 레파지토리에서 변화를 추적하고 싶지 않은 파일이 있다면, +를 누르는 대신, 마우스 오른쪽 버튼을 누른다. 그러면 아래와 같이 여러 옵션들이 나오는데 이중 "Add to .gitignore"을 누른다.

 

git ignore
깃 ignore

 

그렇게 되면 .gitignore 안에 해당 파일 이름이 적혀 있을 것이다.

 

만약! 이미 파일을 commit 했는데 이제 더 이상 커밋하고 싶지 않다면?

 

일단, 해당 파일을 .gitignore 에 더해 준다.

그다음,

 git rm --cached [해당 파일]을 해준다.

예를 들어 gitignore 을 지금까지 어쩌다 보니 커밋을 했는데, 이제 더 이상 안 할 것이라면,

 git rm --cached .gitignore

 git rm --cached .gitignore

이렇게 해준다.

물론, 이렇게 한 뒤에 커밋을 해준다. 

git commit -m "start ignoring .gitignore file "

git commit -m "start ignoring .gitignore file "

이런 식으로 -m 커밋 메세지를 "start ignoring .gitignore file"로 써준 것이다. 

이제 앞으로 변화가 생겨도 track 되지 않고 무시된다. 

 

이제 gitignore 에 적힌 파일들은 비주얼스튜디오코드 Explore에서 보았을 때 파일이름이 '회색'이 되어있다.
변화를 주어도 깃을 하라는 표시 등이 뜨지 않는다.

파일 비교도 간편하게 

vscode에서 유용하게 쓰는 기능중 하나는 파일의 변화를 확인하는 것이다.

방법 하나는 차이가 먼지 궁금한 두 파일을 선택해서 차이가 뭔지 나오게 하는 방법이 있다.

방법 두번째는 timeline 즉, 저장한 파일의 히스토리를 확인하는 방법이 있다.

마지막으로는 깃 커밋 할 때 커밋하려는 파일을 눌러도 그 전과 비교해서 어떤 차이가 있는지 보여준다.

 

 

선택파일 비교
선택된 파일 비교하기를 누른다.

 

원하는 파일 두 개를 선택해서 "선택한 파일 비교하기 compare selected"를 누르면 두 파일의 차이점을 한눈에 보여준다.

만약, 파일에서 추가된 내용들이 있으면 초록색으로, 빠진 라인이 있으면 빨간 색으로 아래와 같이 보여준다.

삭제된것
여기서 두 파일의 차이점을 볼 수 있다. - 는 삭제되었다는 뜻

참고로, 완벽하지는 않은데 좋게 참고하기 좋은 기능이다. 

이 외에도 코드에서 함수 명을 클릭하고 오른쪽 버튼을 누르면 이 함수를 어디서 정의했는지 알 수 있는 기능 등 편의성이 좋다.

 

마무리

본 글에서 vscode를 이용해서 가장 기본적인 git을 하는 법을 알아보았다.

대애에에충 개념적으로 일단 변화를 '저장' 하고 (index, staged, add  ),  그 변화를 선언 commit 커밋, 하고, 그걸 원격 서버에 보내거나 (push) 원격서버에 있는 변화를 받아오거나 pull 한다. 는 깃의 기본 순서를 모두 vscode에서 할 수 있음을 확인했다. 

 

 

Copyright.2022. 퇴근길 afterwork-fyi. All right reserved.
모든 포스트 내 사진과 글은 무단도용, 영리목적의 사용, 저작물의 변경 등을 허용하지 않습니다.

 

댓글


TOP