git

깃 시작

UTD 2023. 10. 7. 00:17

*설치 및 설정

Git 이름 및 이메일 구성하기

개발자로 알려지고 싶은 이름을 사용
git config --global user.name 홍길동

global 옵션을 사용하면 깃은 username 또는 user.name을 인스턴스를 가져올 때마다 같은 이름으로 인식

언제든 변경 가능

명령어 git confit --global user.name 다음에 권한을 가졌다고 알리고 싶은 이름을 넣어줌

git config user.name 
유저네임 보기  

 

이메일도 유저네임과 똑같이 할 수 있음
명령어 패턴은 아주 똑같음 차이점은 user.email에 이메일 주소를 넣은 것

 

이메일 설정  
git config --global user.email 홍길동@gmail.com
깃허브 계정에 로그인할 때 사용할 이메일 주소를 사용하면 좋음
깃허브에 사용할 이메일을 미리 생각해 두었다면 그 이메일을 사용하면 되고 언제든 원하면 변경가능

 

깃 명령어  어떻게 했는지 기억하지 못 한다면, 키보드에서 윗화살표를 누르면 되고
다양한 명령어 줄을 상하로 움직여서 어떤 것을 설정했는지 확인가능


* 터미널 

 ls 는 list의 축약어 현재 디렉토리 또는 폴더에 있는 컨텐츠를 나열하는 명령

파일 탐색기 mac open . 윈도우 start .  뒤에 닷컴 주의


ls 명령어에 
아무 것도 추가하지 않고
입력한 다음 엔터를 치면 현재 디렉토리 안에 있는 것들을 보여줌


하지만 ls명령을 폴더에도 사용할 수 있어서 예를 들면 pets 라는 폴더 안에 있는 것을
출력하라고 할 수도 있는데, 경로를 참조
이 경우에는 Pets폴더
ls pets라고 입력하면 Pets안에 있는 컨텐츠를 출력하라는 것이고 start Pets라고도 할 수 있음

 

Clear 라는 명령도 있는데,
모두 없애 버림


Cats 디렉토리에 접근하기 위해서는 경로를 입력해야 하는데
Pets 디렉토리 안에 있으면
ls Pets/Cats 이라고 명령어를 입력

pwd 라는 것인데 현재 작업하고 있는 디렉토리를 출력하라는 명령
지금 있는 위치를 출력하는 것

cd 인데요, 디렉토리를 이동하는 코드

명령어 cd 다음에 옮기고자 하는 디렉토리명을 입력
ex) cd secret/
위의 예시의 결과는 다음 명령어로 이동하게 해줌

  
cd명령의 변형인 cd .. 이 명령이 뒤로 이동하는 방법

요약>
작업 디렉토리의 목록을 보기 위해 ls, 디렉토리 변경을 위해 cd, 한 폴더 뒤로 이동하기 위해 cd .. 

그리고 또 배웠던 것은 현재 폴더를 보기 위해 맥에서는 open . 명령어를, 
윈도우 컴퓨터에서는start . 명령어를 사용


* 파일 및 폴더 생성 

응용 프로그램을 열고 거기서 파일을 생성
하지만 
touch라는 명령어를 써서 할 수도 있음
다른 명령어들처럼 예를 들면 cd가 change directory를 의미하는 것처럼 따로 나타내는 것은 없고 그냥 touch입니다
ex) touch purple.txt 

새폴더를 만드는 방법
디렉토리를 만드는 명령어는 mkdir인데
메이크 디렉토리라고 발음하면 됨

*파일 및 폴더 삭제

 파일을 삭제하기 위한 명령어 rm

 

Remove를 나타냄 명령어 rm 다음에 공백문자를 넣고 파일 이름을 입력하는데,

그 파일이 현재 디렉토리에 있다고 가정하거나 그 파일에 도달하기 위해 정확한 경로를 참조해야 함
파일을 영구적으로 삭제한다는 것을 기억


폴더나 디렉토리를 삭제하기 위해서 rm의 변형을 사용하는데
rm -rf 

ls -a 는 숨은 파일을 보여주는데, -a는 ls의 목록에 있는 숨은 파일을
포함해서 모든 파일을 말함, 숨은 파일은 .으로 시작

 

* Git Init과 Git Status

git status는 저장소의 상태를 보고해 주는 명령어

git init는 터미널에서 어느 디렉토리에 있든 새 저장소를 초기화함
우리가 있는 디렉토리가 무엇이든 새 저장소의 홈이 됨

git init은 우리가 어디에 있든, 어떤 디렉토리에 있든 명령어를 실행하는 터미널에서
새로운 깃 저장소를 실체화함
또한 이 명령어는 프로젝트당 한번만 실행됨

*  Git 초심자가 흔히 저지르는 실수

깃은 이 디렉토리 안에서 벌어지는 모든 것들을 주시하며  
안에 있는 모든 하위 디렉토리까지
모두 지켜봄
그 폴더 안에 포함된 모든 것들을 말함  
상위레벨에서 제어하는 하향식


그리고 다음과 같은 몇 가지 이유 때문에 이해하는 것이 중요


첫째, 어떤 프로젝트를 위해 이 디렉토리에서 변경하는 파일이나 폴더는 깃에 의해 추적됨

두 번째, 현재 존재하고 있는 저장소 안에 다른 저장소를 초기화하고 싶지 않다는 것을 이해하는 것은 아주
중요
별개의 저장소를 유지하고 싶지만 존재하는 저장소 안에서 git init 명령을 실행하고 싶지는 않음
 어느 시점에서는 문제가 생길 것이기 떄문에

깃은 폴더 안에서 벌어지는 모든 것들을 추적하기 때문에 혼란스러우며
이 폴더 중에 하나가 초기화되었다면, 깃이 깃을 추적하고 깃은 혼란스러워할 것입니다
그래서 이런 문제를 피하기 위해
가장 쉬운 방법은 git init명령을 실행할 때 그 저장소 안에 있지 않도록 해야 함
그런 이유 때문에 git status 명령을 먼저 사용
만약 새 저장소를 만들고 싶을 때 git status를 실행해보면
그러면 현재 저장소가 있고 여기서 새 저장소를 초기화하지 말라고 나옴

* Git Add로 변경사항 스테이징하기

 

git add 명령어
우리가 만들었던 특정 변경사항들을 구분할 수 있게 해줌
커밋하기 전에 변경사항들을 선택하고 그룹화할 수 있음
git add 명령어는 그런 일들이 가능하도록 해줍니다
그래서 우리가 어떤 작업을 하면, 실제로는 변경사항을 만든 것입니다


커밋하기 위해 변경사항들을 스테이지에 올리려면 git add 명령어를 사용해야 합니다
그런 다음 커밋합니다
Working Directory - > git add -> Staging Area -> git commoit -> Repository
(GITTETS 폴더)
그 전에 git으로 어떤 작업이든 하려면, 먼저 변경사항을 만들어야 합니다

실제 물리적인 영역이 아닌 3개의 다른 영역이 있습니다, 워킹 디렉토리, 스테이지 영역, 저장소인데요

 

워킹 디렉토리
프로젝트에서 실제로 작업하는 공간, 디렉토리를 일컬음

저장소가 있음 .git 폴더

 ls -a 명령을 실행해 보면 .git 폴더를 볼 수 있고, 폴더 안에
몇 가지 기본적인 컨텐츠들이 들어있습니다

커밋을 하게 되면 git commit은 .git 안에 있는 것들을 변경해서 새 커밋을 폴더에
등록합니다
그래서 커밋하면 그 폴더, 사실은 깃 저장소를 업데이트하는 것입니다
그렇지 않으면 지금까지 했던 모든 것은 워킹 디렉토리에서였습니다

스테이지 영역
커밋하기 전에 변경사항들을 등록하는 곳입니다
git add 명령을 사용해서 스테이지에 올렸고, 그런 다음 커밋할 수 있습니다
스테이지에 올리고 커밋하고 그 시점에서 .git 폴더를 업데이트합니다

git add 명령은 꽤 간단합니다
git add 다음에 우리가 변경했던 한 개 혹은 그 이상의 파일 이름을 넣습니다,

 공백으로 분리해서 다수의 파일들을 넣을 수 있고 아니면 ‘git add 파일명’ 같은 방식으로 할 수도 있습니다
ex) git add file1 file2

등록한 다음 git status를 실행합니다
항상 git status를 실행
손해볼 일은 없고 리포트를 해줄 뿐임

명령어 git commit  스테이지 영역에 있는
변경사항들을 커밋하는데 사용하는 명령어입니다

git commit -m " "   메시지를 입력하면 깃은 우리가 제공한 그 메시지를
사용하고 그 메시지로 커밋합니다,

 

 Git Log 명령어
 git log는 어떤 작업도 하지 않고
git status와 마찬가지로
정보들을 검색하는 명령어입니다
git log는 깃 저장소에 대한 커밋 정보들을 검색


git add . 명령은
한번에 모든 변경사항들을 스테이지에 넣습니다
그래서 그 시점에 스테이지에 있지 않은 것들은 커밋되지 않습니다
이 경우에 git add . 을 사용했을 때, 만약 파일 50개가 변경되었고
모든 파일 50개가 스테이지에 들어간다면 이 명령은 아주 유용할 것