GIT
-
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..
-
내생애 첫 머지. 컨플릭트 최대 몇 개까지 낼 수 있어요?앱등이에게 살충제를 뿌린다./일기는 일기장에 2016. 6. 30. 00:15
하나의 앱에서 두 프로젝트가 진행되고 있다.. L프로젝트 G프로젝트라고 하고..L프로젝트는 3월부터 8월까지 3명이 개발G프로젝트는 5월부터 8월까지 2명이 개발 오늘 처음으로 이 두 프로젝트를 머지햇는데..컨플릭트 해결이 너무 힘들었다.그 중 하나 원썬의 소리팔투 같은 에러메시지 때문에.. 1시간은 날린 듯 하다. 그 메시지는 swiftc failed with exit code 1 과 유사한 메시지였는데, SomeSourceFile.swift 파일을 찾을 수가 없어서 빌드를 할 수 없다는 것이었다.1. 그래서 global find에서 SomeSourceFile를 쳐봤는데, 아무것도 안나옴2. 그래서 프로젝트 설정파일 project.pbxproj파일에서 SomeSourceFile을 치니깐 다섯군데가 나옴..