본문 바로가기
프로그래밍 ( Programming )/깃허브 (GitHub)

4. Git 소스코드 수정해서 반영해보기

by Jayce_choi 2021. 11. 17.
반응형

소스코드를 수정하고 Git 저장소에 반영을 하기 위해서 첫 번째 게시글 내용과 비슷하다고 생각하시면 되겠습니다. 

 

소스코드를 수정하는 것은 크게 2가지로 나뉩니다.

1. 해당 프로젝트에 소속된 사람이 아닌 경우 

만약 우리가 특정한 커뮤니티 구성원이 아니라서 스스로 커밋을 하여 저장소에 적용할 권한이 없다면 소스코드를 수정하는 것에 제약이 있습니다. 이런 경우 PR (Pull Request)를 작성하여 오픈소스에 기여할 수 있습니다. 

*Pull request - 내가 수정한 코드가 있으니 내 branch를 가져가서 검토 후 병합해주세요 라는 기능으로 코드 충돌을 최소화하고 push 권한이 없는 오픈 소스 프로젝트에 기여 시 많이 사용합니다. 

 

2. (일반적인 경우) 해당 프로젝트에 소속된 사람인 경우 

자신이 해당 프로젝트에 대한 권한을 가지고 있고 Commit과 Push를 통해서 저장소에 수정 내역을 반영이 가능한 상황


우리는 우선 2번인 경우를 가정해서 이번 글에서는 코드를 수정하고 반영하는 과정에 대해서 진행해보도록 하겠습니다.

 

1. 먼저 첫번째 게시글에서 만들었던 파일이 담긴 repository의 링크를 이용하여 새로운 빈 폴더에 git clone을 합니다.

저는 tutorial이라는 새로운 빈 폴더에 git clone을 하였습니다.  

하단 사진과 같이 aa라는 Repository가 생성된 것을 볼 수 있습니다. 

 

 

2. 이제 코드를 생성하고 추가해봅시다. 

먼저 Repository 폴더 내부에서 테스트용 파일을 하나 만들어줍시다. add_module.py라는 파이썬 파일과 함께 내부에 내용을 작성해줍니다. (Python IDLE을 이용하셔도 됩니다) 

 

그리고 git status 명령어를 통해서 어떤게 수정 및 추가가 되었는지를 확인하실 수 있습니다. 

 

3. 이제 git add 명령어를 통해서 staging area로 보내봅시다. 

git status 명령어를 다시 입력함으로써 초록색 글자로 바뀐 것을 확인하여서 성공적으로 staging area에 올라간 것을 확인하실 수가 있습니다. 

*만약 다시 되돌리고 싶으실때는 git reset 명령어를 사용하시면 됩니다. 

 

*만약 모든 파일들을 한번에 staging area로 보내고 싶으실 때는 (git add.) 명령어를 활용하면 되겠습니다. 

 

4. staging area에 올라간 파일을 commit 명령어로 실행시킵니다. 

그리고 git status를 입력하였을때 1 commit이 발생했다는 것을 파악할 수가 있습니다. 

 

5. 마지막 단계로 git push까지 해주고 github에서 실제로 파일이 올라간지 확인해줍시다. 

 

6. 이제 Working directory (add_module.py가 위치한 폴더)에 가서 add_module.py의 내용을 바꿔봅니다. 

다음과 같이 저는 3개의 매개변수를 더하는 함수를 하나 더 추가하였습니다. 

 

7. 다시 git status를 입력하여 상태를 확인해줍니다.

여기서 2가지 선택지가 나오는데 git add를 한다면 우리가 만든 add2 함수를 반영하는 것이고 git restore 명령어를 입력한다면 다시 되돌리는 명령어로서 우리가 만든 add2 함수가 사라지게 됩니다. (한번 확인해보세요!)

 

8. 그다음 과정은 동일하게 add 명령어와 commit을 진행해주시면 되겠습니다.

* 만약 여기서 commit 내용을 잘못 입력했을때는 다음과 같이 git commit --amend 명령어를 활용하여 수정하고 나오면 되는데 다만 수정 화면으로 갔을 때 조작키 같은 경우는 유닉스 또는 리눅스 편집기에서 사용하는 명령어를 참고하시면 되겠습니다. 

amend를 시행했을때 나오는 화면

9. 이제 git push까지 진행해서 github에서 추가된 내용이 반영되었는지 확인해봅니다.

 

이번 글에서는 github에서 repository를 clone하고 여기서 새로운 파일을 생성하여 push까지 해보고 그리고 새로운 파일에 코드 수정까지 하여서 다시 push까지 해보는 작업을 해보았습니다. 또한 추가적으로 commit을 잘못했을 경우 amend라는 기능도 한번 다뤄보았으며 restore 명령어를 통해서 staging area에서 다시 되돌려놓는 작업을 해보기도 하였습니다. 

반응형

댓글