[실무에서 자주쓰는 리눅스 명령어]4. 리눅스 터미널 git 명령어 1
안녕하세요 고급개발자가 꿈인 코린이 입니다.
오늘은 프로그래머라면 많이 사용하는 형상관리 툴인 git 에대해서 설명 드릴려고 합니다.
git은 여러명의 프로그래머들이 다같이 개발을 할때 여러명이서 동시에 개발이 가능하도록 도와주는 역활을 합니다.
예를 들어 하나의 프로그래머는 하나의 프로젝트에서 A라는 서비스를 담당하고 있고 또 다른 프로그래머는 B라는
서비스를 담당하고 있다고 하면 양쪽에서 개발후 소스코드를 합쳐주고 이러한 히스토리들을 관리할수 있게
하는것이 git입니다. 만약 git이 없다면 양쪽에서 각자 구현한후 한명이서 각자 개발한 내용들을 취합해야 합니다.
그러나 git을 사용함으로써 자신이 개발한 내용을 서버 코드에 머지를 해서 다른 개발자들도 바로 받을수 있고
상대방이 구현한 내용을 받아서 자신이 개발한것만 넣을 수 있도록 할수가 있습니다.
그래서 이러한 git을 사용하기위한 git명령어들을 이번 포스팅에서 다루어 보려고 합니다.
1. staging Area에 작업 내용 넣기
staging Area란 자신이 작업한 내용을 commit을 하기위한 준비단계의 상태 입니다. staging Area에 add가 된 내용들만
commit을 할수가 있고 서버에 머지를 할수가 있습니다.
그래서 서버에 머지를 하기전에 항상 staging Area에 add를 시켜 줍니다.
add 를 시켜주는 명령어는 git add <파일이름> or git add . 을 해주시면 됩니다. git add 하고 파일이름을
적어주시면 그 파일만 staging Area에 add가 되고 git add 하고 . 을 해주시면 현재 git add 명령어를 사용할
디렉토리에서 수정된 모든 내용을 add 해주는 명령어 입니다.
아래 이미지는 testsource.cpp 파일과 testsource1.cpp파일을 새로 만들어주고
git add testsource.cpp를 해준 내용 입니다. 그리고 각 내용에는 파일이름을 텍스트로 넣어주었습니다.
그리고 현재 디렉토리의 staging상태를 보기위해서 git status 명령어를 한 내용 입니다.
위의 이미지를 보시면 git add 로 추가한 내용은 초록색으로 표시된 내용이 보이고 그렇지 않은 내용은 빨간색으로
표시되는것을 보실수가 있습니다.
초록색으로 표시된 부분은 staging area에 들어가 있어서 서버에 머지될 준비가 된 상태이고 빨간색으로 표시된 내용은
git add를 하지 않은 내용으로 서버에 머지될 준비가 안된 상태 입니다.
이렇게 해서 여러개의 파일을 수정하였더라도 특정한 파일만 서버에 머지를 할수 있도록 해줍니다.
2. 현재 디렉토리의 staging상태를 보이기
git status는 서버에 머지를 하기전에 어떠한 파일이 바뀌었는지 그리고 어떠한 파일이 staging area에 add가된
상태인지를 확인할수 있는 명령어 입니다.
이명령어를 통해서 서버에 어떠한 파일이 머지가 되는지를 미리 확인할수가 있고 서버에 필요한 내용만
머지가 가능하도록 확인하는 내용 입니다.
위의 이미지를 보시면 testsource.cpp파일이 staging상태에 있기 때문에 서버에 머지를 하게 되면 testsource.cpp가
서버에 들어가게 됩니다. 여기서 testsource1.cpp파일도 같이 들어가야 한다면 git add testsource1.cpp명령어를
이용해서 staging Area에 add를 해주어야 합니다.
항상 git status라는 명령어를 이용해서 머지 할 파일이 제대로 들어갔는지 혹시나 머지가 되지 말아야할 파일이 add가
되었는지를 항상 확인하면 좋은 프로그래머가 될수가 있습니다.
3. add 한 내용에 대한 설명 추가 및 저장소에 저장
이번에는 staging Area에 추가한 내용에 대한 설명을 추가하고 서버에 저장하기전 마지막으로 저장소에 저장하는
내용을 다루어 보겠습니다.
add 한 내용에 대한 설명 추가는 git commit -m "add 한 내용에 대한 설명" 이렇게 명령어를 해주시면 됩니다.
이 설명을 통해서 다른 개발자가 수정한 내용에대한 대략적인 수정 내용을 알수 있으며 이 내용을 참조를 해서
이전 소스로 돌아가게 되었을때 어디까지 돌아갈수 있을지를 판단하는 아주 중용한 내용을 담게 되는 것입니다.
그래서 개발하시는 분들께서는 항상 이 설명을 자세하게 적을 수록 좋습니다. 만약 a라는 서비스에 특정한 내용을
추가했는데 앱이 막 죽어버린다면 이 죽는 에러를 컴파일하는 데는 아주 많은 시간이 필요합니다.
이럴때 특정한 내용을 추가한 이전 소스코드로 돌아가서 현재 소스와 비교를 한다면 어떠한 부분때문에
죽었고 문제가 되었는지를 확인하기가 좀더 수월해 집니다.
그렇기 때문에 이 설명을 정확하게 적어주셔야 다른사람이 특정한 소스로 돌아갈때 시간소모를 조금이라도 줄일수가
있습니다.
이 설명을 추가하는 명령어는 아래 이미지와 같이 해주시면 됩니다.
위의 이미지를 보시면 git commit 을 해준후에는 git status를 해주었을때 git add 했던 내용이 사라지게 됩니다.
이 부분은 이전에 git add 한 내용은 내부 저장소에 저장이 되고 이 내용을 서버에 저장하기 바로 이전단계가
된 상태 입니다.
방금 commit으로 설명 넣은 내용을 보기 위해서는 git log 명령어를 이용하시면됩니다.
이 git log명령어는 다음 포스팅에서 설명 드리겠습니다.
아래 git log 한 이미지 입니다.
위 이미지의 제일 밑에 내용이 마지막으로 commit한 내용입니다. 맨위의 add testsource.cpp는
제가 블로그에 설명을 위해서 이미지로 저장하기전에 테스트를 진행을 하는데 commit 하고 나서 이전으로 돌아가지가
않아서 testsource.cpp를 서버에 넣고 서버에서 다시 지우고 테스트 해서 나온 내용 입니다.
참고해 주세요
4. 서버에 수정한 내용 넣기(서버에 수정한 내용 머지 하기)
이렇게 git commit 을하고 마지막으로는 서버에 머지를 해주어야 합니다.
서버에 머지를 해주어야 다른사람도 이 git 저장소를 받았을때 같은 내용을 받을수 있게 해야하기 때문이죠
이럴때 사용하는 명령어는 git push origin master입니다.
이 명령어를 사용하시면 마스터 브랜치 즉 메인이 되는 브렌치(공용 서버 코드가 있는 곳)에 머지가 되어서
다른 곳에서 이 저장소를 다운 받으면 testsource.cpp파일까지 받을수가 있는 것입니다.
아래 이미지는 서버에 머지를 한 내용과 다른 디렉토리에서 저장소 소스코드를 받은 내용 입니다.
git push를 해서 서버에 testsource.cpp파일을 머지를 하고
아래 testgit 디렉토리에서 git 저장소 내용을 받고 git log명령어와
파일이 추가되었다는 것을 확인하기 위해서 ls명령어를 해준 내용 입니다.
이미지 참고 해주시면 감사하겠습니다.
여기까지 git 에 머지를 하는 내용에 대해서 간단하게 설명 드렸고 실제로도 실습도 해보았는데요
다은 포스팅에서는 git add 한 파일을 git add 이전 상태로 가게 하는 내용등 실무에서 git 명령어를 사용할때
많이 사용하는 내용들을 주로 다루어 보겠습니다.
여기까지 읽어주셔서 감사합니다.!
'리눅스 > 자주쓰는 리눅스 명령어' 카테고리의 다른 글
[실무에서 자주쓰는 리눅스 명령어]5. 리눅스 터미널 git 명령어 2(이전 소스코드로 돌리기) (0) | 2020.02.23 |
---|---|
[실무에서 자주쓰는 리눅스 명령어]3.vi 에디터 스왑 에러 해결(swp 파일 에러) (0) | 2019.10.09 |
[실무에서 자주쓰는 리눅스 명령어]2. 파일 삭제 및 디렉토리 삭제(rm 명령어) (0) | 2019.09.29 |
[실무에서 자주쓰는 리눅스 명령어]1. 이전 디렉토리로 이동 명령어(cd 명령어) (0) | 2019.09.22 |