아래의 글은 Git 공식 문서를 통해 배운 것을 정리한 내용입니다.
로컬 디렉토리 하나를 선택해서 Git 레포지토리를 적용하는 방법.
다른 어딘가에서 Git 저장소를 Clone 하는 방법.
우선 기존 프로젝트를 Git으로 관리하고 싶은 경우 해당 프로젝트가 있는 디렉토리로 이동하고 명령어를 입력한다.
Mac 기준 명령어는 다음과 같다.
cd /Users/user/my_project
git init
git init
명령은 .git
이라는 하위 디렉토리를 만든다는 의미이다.
Git이 파일을 관리하게 하려면 레포지토리에 파일을 추가하고 커밋해야 한다.
git add
: 파일을 추가하는 명령어 / git commit
: 커밋하는 명령어
git add " 파일이름 "
git commit -m " 커밋 메시지 "
기존 혹은 다른 프로젝트에서 Git 레포지토리를 복사하고 싶을 때 git clone
명령을 사용한다.
해당 명령어를 실행하면 프로젝트 히스토리를 전부 받아온다.
git clone <url>
명령으로 저장소를 Clone 한다.
devfancy.github.io에 있는 소스코드를 Clone하려면 아래와 같이 실행한다.
https://github.com/devfancy/devfancy.github.io.git
jun-yong
)으로 Clone 하고 싶을 경우 아래와 같이 입력하면 된다.https://github.com/devfancy/devfancy.github.io.git jun-yong
아래의 글은 Git 마스터 과정에서 배운 것을 정리한 내용입니다.
git init #initialise git -> git이 초기화됨.
rm -rf .git #delete .git
git status #full status
git status -s #short status -> 간편하게 확인하고 싶을 때
git과 github에 올리고 싶지 않은 파일들 → .gitignore 파일에 추가할 수 있다.
예) echo *.log > .gitignore ⇒ *.log라는 파일은 .gitignore
에 속해진다.
git add a.txt #stage a.txt file
git add a.txt b.txt #stage a.txt, b.txt files
git add *.txt #stage all files ends with .txt
git add * #stage all files except deleted files and files that begin with a dot
git add . #stage everything
git status
명령어를 통해 Staging area에 포함이 되는 것을 볼 수 있다.Removing files
rm file.txt #delete file
git add file.txt #add to staging area
# git add 를 통해 해당 파일을 staging area로 이동한다.
git rm file.txt # removes file from working directory and staging area
git rm --cached file.txt #removes from staging area only
git clean -fd #removes all untracked files
Moving files
git mv from.txt to.txt
git mv from.text /logs/from.text
git status #full status
git status -s #short status
git diff #changes in working directory
git diff --staged #changes in staging area
git diff --cached #same as --staged
버전을 만들때 쓰는 명령어다.
Staging area에 있는 변경사항을 Git repository에 옮겨주는 역할이다.
git commit #commit stagged files
git commit -m "Commit message"
# commit stagged files with commit message
git commit -am "Commit message" #commit all files with commit message
See history
git log #list of commits -> 누가, 언제, 추가한 내용을 보여준다.
git log --patch #shows the difference introduced in each commit
git log -p #same as --patch
git log --state #abbreviated states for each commit
git log --oneline #oneline -> 간편하게 한줄로 확인(제목)
git log --oneline --reverse #oneline, from the oldest to the newest -> 오래된 것부터 순서대로 확인한다.
Filtering
git log -2 #shows only the last n commits -> n번까지 출력할 것인지 예시에서는 2줄까지 출력한다.
git log --author="fancy"
git log --before="2022-01-01"
git log --after="one week ago"
git log --grep="message" #finds in commit messages -> message가 포함된 commit을 찾는다.
git log -S="code" #finds in the code
git log file.txt #logs only for file.txt
# 조금 더 자세히 보고 싶다면
git log -p file.txt
# 간단하게 보고 싶다면
git log -s file.txt
History of a file
git log file.txt #history of file.txt
git log --state file.txt #shows statistics
git log --patch file.txt #show the changes
git log -p # 위에 있는 git log --patch file.txt와 같은 명령어이다.
HEAD
git log HEAD
git log HEAD~1 # HEAD 바로 이전 첫번째 꺼를 보고 싶다면 => HEAD~1, HEAD이전 몇번째를 보고 싶다면 => HEAD~n
Viewing a commit
git show HEAD #shows the last commit
git show hash #shows the given commit
git show hash:file.txt
ex) 만약에 commit에 여러가지 파일들이 들어있다면, 그 중에서 user_repository.txt만 보고 싶다면
-> git show hash:user_repository.txt
Comparing
git diff hash1 hash2 #all changes between two commits
ex) git diff 5e27f5819e 0e0fe985e022 => 두가지 해쉬코드값을 보고 두 파일을 비교한다.
git diff hash1 hash2 file.txt #changes to file.txt only
이 글은 Git 공식 문서를 통해 배운 것을 정리한 내용입니다.
버전 관리 시스템
은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다.
버전 관리 종류에는 로컬 버전 관리, 중앙집중식 버전 관리(CVCS), 분산 버전 관리 시스템이 있다.