Ray Wenderlich/Mastering Git
-
Ch13. StashesRay Wenderlich/Mastering Git 2021. 9. 21. 16:48
git stash cd .git/refs/ cat stash # b6132364bdae71e8a5483e42584257aadbe49827 git cat-file -p b61323 tree 1a79fa3410189b40dccb6b36f7eda8725c768627 parent 870aea10aa51d9103e6f6e37217b2cd077dd22bb parent 68cde8e6fde76e21a7a93637f0bf5dbc3b36c242 author Chris Belanger 1556018137 -0300 committer Chris Belanger 1556018137 -0300 WIP on master: 870aea1 Merge branch 'xReadmeUpdates' Git은 Stash를 생성할때 Commi..
-
Ch12. Merge ConflictsRay Wenderlich/Mastering Git 2021. 8. 23. 00:58
What is a merge conflict? Git은 Merge를 할 때, Longest Common Subsequence(LCS)를 사용한다. 먼저 내가 수정한 파일과 Common ancestor의 변경사항을 비교하여 공통부분을 찾는다. 그 다음, Merge할 브랜치의 파일을 Common ancestor와 비교하여 공통부분을 찾는다. Git은 이 방식으로 LCS를 찾아낸 뒤 비교해본다. "What has changed between the common ancestor and this new file?" 그 다음, "Now, of those changes in each pair of files, are there any sets of lines that have changed differently be..
-
Ch11. How Does Git Actually Work?Ray Wenderlich/Mastering Git 2021. 8. 23. 00:57
Git은 SHA-1해쉬 값으로 모든 Commit을 참조한다. Dissecting the commit git log -5 --oneline f8098fa (HEAD -> master, origin/master, origin/HEAD) Merge branch 'clickbait' with changes from crispy8888/clickbait d83ab2b (crispy8888/clickbait, clickbait) Ticked off the last item added 5415c13 More clickbait ideas fed347d (from-crispy8888) Merge branch 'master' of https://www.github.com/belangerc/ideas ace7251 Addi..
-
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 ..