Microsoft 社는 2022년 6월 15일 Internet Explorer 11의 지원을 종료했습니다.

초보자를 위한 git 초간단 사용법

제목

완전 초보자를 위한 git 초간단 사용법

1. 소개

git 은 소스코드 형상관리 도구이다. CVS 나 SVN(Subversion) 같은 유사한 도구들도 있다.

1.1. 소스코드 형상관리를 해야 하는 이유

오래동안 사용하면 변경 전 소스코드를 주석으로 막아서 남겨두는 습관이 사라지고, 소스코드의 가독성도 높아진다.

주석이 덕지덕지 붙은 코드는 너절한 코드의 전형이다.

1.2. 구별되는 것

  • 응용프로그램의 상태를 변경전으로 되돌리는 것은 소스코드 형상관리와 다른 방향으로 접근해야 한다.
  • 개발 초기 단계는 형상관리와 백업이 경합할 수 있다.

2. 초간단 사용법

2.1. 이메일 주소 및 이름 설정

git config --global user.email "Your Email"
git config --global user.name "Your Name"

2.2. git 저장소 초기화

git init

2.3. .gitignore 파일 작성

vi .gitignore

다음과 같이 확장자나 디렉토리 이름을 지정할 수 있다.

*.class
*.log
*.jar
*.war
*.zip
*.tar
*.tar.gz
*.tgz
*.rar
hs_err_pid*
bin/
lib/
package/
tomcat10/

2.4. git 저장소에 파일 추가

git add 파일명혹은디렉토리명

예를 들어,

git add src build.xml .gitignore

2.5. 관습

첫 번째 commit 을 다음과 같이 하는 경우도 있다.

git commit -a -m "Initial Commit"

git 은 1) 마지막 commit 후 변경된 파일 목록을 조회하고, 2) 파일의 변경내역(diff)를 조회하고, 3) commit 의 순서로 실행하는 것이 일반적이다.

git status
git diff 파일명
git commit 파일명

다음부터 각각의 명령어에 대한 설명을 덧붙인다.

2.6. commit

마지막 commit 된 이후에 변경된 파일 목록을 확인한다.

git commit

1개 혹은 여러개의 파일을 commit 할 수 있다.

git commit 파일명

ubuntu 에서 commit 메시지는 GNU nano 로 작성할 수 있고, 사용하는 명령어는 Ctrl + o 와 Ctrl + x 정도이다.

다음과 같이 하면, commit 메시지 작성을 위한 에디터를 vi로 변경할 수 있다.

git config --global core.editor "vim"

다음과 같이 commit 메시지를 지정할 수도 있다.

git commit -m "Initial Commit" 파일명

다음은 변경된 모든 파일을 commit 한다.

git commit -a

다음은 변경된 모든 파일을 메시지를 지정하여 commit 한다.

git commit -a -m "Initial Commit"

2.7. status

마지막 commit 이후에 변경되었거나, 추가된 파일을 조회한다.

git status

2.8. 마지막 commit 상태로 되돌리기

마지막 commit 이후의 변경사항을 버린다.

git checkout -- <file>

이 기능을 사용하게 되면, 마지막 commit 이후의 변경사항은 복구할 수 없다는 것에 주의해야 한다.

2.9. 마지막 commit 된 것과 현재 파일 비교(diff)

git diff 파일명

2.10. 로그 확인

전체 commit log를 출력한다.

git log

파일명을 지정할 수 있다.

git log 파일명

파일명을 지정하여 최근 1개의 commit 로그만 볼수 있다.

git log -1 파일명

diff 결과와 유사한 파일의 변경내역을 같이 볼 수도 있다.

git log -p 파일명

diff 결과와 유사한 파일의 변경내역을 1개만 조회한다.

git log -p -1 파일명

2.11. 파일 삭제 ~ 이동

git rm 파일명
git mv 파일명 새로운파일명

remote 저장소에 있는 것 삭제 (.gitignore 에 추가했음에도 불구하고 계속해서 commit 할 목록에 나오는 경우에도 사용할 수 있다)

git rm –cached 파일명

remote 저장소에 있는 것 삭제(하위 디렉토리 전체)

git rm –cached -r 디렉토리명/

3. tip

3.1. chmod (file mode) 변경사항 무시

git config core.fileMode false
git config --global core.filemode false

3.2. GitWeb

(User Interface 가 조금 어색하지만) Git 서버 - GitWeb 도 있다.

웹서버가 설치되지 않은 ubuntu 라면 먼저 lighttpd 를 설치한다.

sudo apt inatll lighttpd

gitweb 도 설치한다.

sudo apt install gitweb

.git 디렉토리가 있는 디렉토리에서 다음과 같이 실행한다.

git instaweb

.git/gitweb/lighttpd.conf 에서 포트 번호를 확인한 후에 잘 열려 있는지 확인한다.

netstat -anp -t | grep LISTEN

웹브라우저에서 다음과 같이 접속한다.

http://192.168.0.100:1234/

종료한다.

git instaweb --stop

만약 웹서버가 이미 설치되어 있다면, Git 서버 - GitWeb 를 참조해서 설정한다.

4. git을 더 배우려면

4.1. ProGit 한글판

HTML 버전과 PDF 버전이 있고, 한국어를 포함한 여러 언어로 번역되어 있다.

제목

첨부파일