Ray Wenderlich
-
Ch10. MergingRay Wenderlich/Mastering Git 2021. 8. 21. 16:32
Three-way merges 2개의 수정을 merge할 때, 각각의 수정 사항을 합치는 것을 생각해보자. 이 것은 two-way merge이고, 우리가 실제로 이해하기 쉬운 방식이다. git은 Three-way merge를 한다. 파일의 변경을 마친 상태 그대로 mere하는 것이 아닌 original 파일으로부터 수정된 사항을 merge하는 것이다. merge conflict가 발생하는 경우를 제외하면 git은 three-way merge를 통해 오류없이 merge해줄 것이다. Merging a branch git log --not theirs에는 있지만 ours에는 없는 commit을 보여준다. Fast-forward merge original 파일을 나 말고 아무도 건드리지 않았다면 Fast-for..
-
Ch9. Creating a RepositoryRay Wenderlich/Mastering Git 2021. 8. 21. 16:30
git init Initialized empty Git repository in /Users/chrisbelanger/MasteringGit/mastering-git-web/.git/ 디렉터리에 파일이 있어도 empty Git repository를 생성했다고 한다. git add로 파일을 추가해주어야 한다. Creating a LICENSE file LICENSE 파일은 레포지터리의 코드에 대한 권한을 알려준다. LICENSE 파일이 없는 레포지터리는 다른 유저들이 어떤 권한을 갖게 될까? 그냥 막 써도 된다? ㄴㄴ 보기만하고 어떤 경우에도 재사용하거나 contribution할 수 없다. https://choosealicense.com/ 여기에 가면 샘플 LICENSE파일이 많이 있으니, 골라서 사용하면..
-
Ch8. Syncing With a RemoteRay Wenderlich/Mastering Git 2021. 8. 21. 16:26
git push origin master # master 브랜치를 remote(origin)와 syncronize 하여라! git pull origin # editor opens Merge branch 'master' of https://github.com/belangerc/ideas # Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty message aborts # the commit. git pull은 gi..
-
Ch7. BranchingRay Wenderlich/Mastering Git 2021. 8. 6. 00:01
master브랜치는 git이 기본으로 생성하는 브랜치의 이름 git config --global init.defaultBranch main 으로 default name 변경 가능 (새로운 레포지터리 만들때만 가능) Creating a branch git branch testBranch How Git track branches ls .git/refs/heads/ >> master testBranch cat .git/refs/heads/testBranch >> a0bd93448dacba241f03063b43f9f31adadea4d8 (some hash value) git log -1 commit a0bd93448dacba241f03063b43f9f31adadea4d8 (HEAD -> master, testB..
-
Ch6. Git Log & HistoryRay Wenderlich/Mastering Git 2021. 8. 5. 23:59
git log git log -3 git log --oneline Hash commit 477e542bfa35942ddf069d85fbe3fb0923cfab47 (HEAD -> master) 477e542 (HEAD -> master) Adding .gitignore files and HTML --oneline옵션을 사용하면 commit hash가 앞의 7글자만 나온다. 7글자의 hash로 collision이 날 확률은 거의 없으니 안심해도 된다. Graphical views of your repository git log --graph git log --oneline --graph --all Using Git shortlog git shortlog Searching Git history git log ..
-
Ch5. Ignoring Files in GitRay Wenderlich/Mastering Git 2021. 8. 5. 23:56
*/*.html Subdirectory에 있는 html파일을 무시하라! Nesting .gitignore files top directory의 .gitignore에서 */*.html 를 선언했다. 근데 특정 subdirectory에서는 html파일을 track하고 싶다면?? !/*.html !는 부정을 의미하고 /는 지금 이 directory부터라는 의미다. 그래서 /*.html은 지금부터는 html파일을 ignore하지마!! 라는 뜻이다. Looking at the global .gitignore git config --global core.excludesfile 터미널에 이 명령어를 실행하면 global .gitignore의 위치를 알려준다. 알려주지 않는다면 이제 만들면 됨 (원하는 위치에 만들어 ..
-
Ch4. The Staging AreaRay Wenderlich/Mastering Git 2021. 7. 29. 02:16
git reset HEAD books/management_book_ideas.md HEAD의 의미 가장 최근의 commit을 가리킨다. 위 명령의 의미는 Staging Area에서 books/management_book_ideas.md 파일을 HEAD상태로 되돌려라. 그냥 Unstage임..ㅋㅋ 파일 옮기기 mv videos/platform_ideas.md website 이렇게 하면 git은 videos/platform_ideas.md 파일이 삭제된 것으로 인식한다. 왜냐?? git은 directory에 관심이 없다고 Ch3에 설명했었다. git은 videos/platform_ideas.md path에 해당하는 파일이 더 이상 존재하지 않기 때문에 이 파일이 삭제된 것으로 인식한다. // mv 커맨드 실..
-
Ch3.Commiting your changesRay Wenderlich/Mastering Git 2021. 7. 29. 02:11
// 간단한 것들 git status git diff // working area를 비교함, stage된 변화는 알 수 없음 git diff --staged // stage된 변화를 알 수 있음 git add filepath git add . Git log git log // 커밋 메시지만 보여줌 git log -p // 커밋 diff까지 보여줌 // Space bar로 pagination가능, q로 종료 가능 디렉터리를 만들었는데 Nothing to commit? // 디렉터리를 만들었는데, nothing to commit?? mkdir tutorials ~/MasteringGit/ideas $ git status On branch master Your branch is ahead of 'origin/..