"오늘은 가장 인기 있는 두 가지 버전 제어 프로그램인 SVN과 Git에 대해 말씀드리겠습니다."

"SVN은 지난 강의에서 설명한 방식과 거의 동일하게 작동합니다. Git은 조금 더 복잡하며 이에 대해 더 자세히 논의할 계획입니다."

"SVN 및 Git 문서에 대한 링크를 제공할 수 있습니까?"

"물론이지, 잠시만."

http://svnbook.red-bean.com/en/1.7/svn-book.html

https://githowto.com  (이것은 단순히 걸작입니다)

"그래서, 힘내 ."

"SVN보다 조금 더 복잡합니다.  Git을 사용하면 서버 저장소 외에 각 사용자가 자신의 로컬 저장소를 갖게 됩니다. "

"그럼 어디에 약속을 합니까?"

"사용자는 항상 로컬 저장소에 커밋합니다."

"하지만 서버 저장소는 어떻습니까?"

"로컬 및 서버 리포지토리를 동기화하기 위해 특별한 Pull 및 Push 명령이 있습니다 .

"이유가 있습니다. 때때로 프로그래머는 자신의 부분에서 많은 작업을 수행해야 하며 공유 저장소에 추가되기 전에 수백 개의 커밋이 포함될 수 있습니다."

"SVN에서 이 작업을 수행하려면 별도의 분기를 시작한 다음 트렁크와 병합해야 합니다."

"Git을 사용하면 항상 로컬 리포지토리에 커밋한 다음 작업이 완료되면 모든 변경 사항을 서버의 중앙 리포지토리에 배치로 보냅니다."

"이 방법은 약간의 코드만 작성하는 경우 약간 과도하게 보일 수 있습니다. 하지만 작업이 너무 커서 몇 주에 걸쳐 수행되는 경우 커밋 없이는 전체 시간을 작성할 수 없다는 것을 이해하게 됩니다."

"왜 2주 동안만 작업한 다음 변경 사항을 서버에 한 번 커밋할 수 없습니까?"

"음, 버전 제어 프로그램은 많은 편의를 제공합니다."

"매일 커밋하고 10일째 되는 날에 지난 이틀 동안 변경한 사항이 계획대로 작동하지 않는다는 것을 발견했다고 상상해 보십시오. 그리고 8일째에 있었던 코드로 돌아가서 작업에 접근하려고 합니다. 다르게."

"지난 이틀 동안 로컬 리포지토리에 적용된 변경 사항을 롤백하고 원하는 상태로 돌아갑니다. 이를 롤백 작업 이라고 합니다 ."

"당신이 할 수 있다고 말하는 겁니까?"

"네. 또한 커밋 히스토리가 저장되어 있기 때문에 언제, 왜, 누가, 관련 기능/버그, 그리고 이 작업의 일부로 어떤 파일이 동시에 수정되었는지 10개를 알 수 있습니다."

"누군가의 버그 수정이 다른 사람의 코드를 손상시킨다고 가정해 보십시오. 코드를 롤백( 롤백 )하고 변경 사항이 전혀 발생하지 않은 것처럼 진행할 수 있습니다."

"좋아요, 멋지네요. 확신합니다. 이 모든 것이 어떻게 작동하는지 보여주는 몇 가지 예를 보여주실 수 있나요?"

"확신하는."

" 중앙 저장소를 로컬 컴퓨터에 복제하는 방법은 다음과 같습니다 ."

커밋 및 분기 - 1

"따라서 Checkout 작업이 더 이상 필요하지 않습니다."

"네. 푸시 작업 의 예는 다음과 같습니다 ."

커밋 및 분기 - 2

"및 끌어오기 작업:

커밋 및 분기 - 3

"아. 그건 좀 말이 되는군."

"그런데 GitHub라는 멋진 서비스가 있습니다."

"프로그래머라면 누구나 거기에 등록하고 자신만의 Git 저장소를 만들 수 있습니다. 좀 더 익숙해지시기 바랍니다."

"다음은 몇 가지 유용한 링크입니다."

https://githowto.com

https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

https://articles.assembla.com/using-git/getting-started/set-up-git-on-windows-with-tortoisegit

"Git 클라이언트가 상당히 많다는 점에 유의하십시오."

"먼저 텍스트 명령을 입력할 수 있는 GitBash 가 있습니다   ."

"그러면 Windows 탐색기에 내장된 훌륭한 프로그램인 TortoiseGit 이 있습니다 . 이를 통해 탐색기에서 직접 Git 리포지토리의 파일을 사용할 수 있습니다."

"IntelliJ IDEA는 Git을 지원하며 환경 내에서 직접 몇 번의 클릭만으로 모든 종류의 복잡한 명령을 실행할 수 있습니다."

"그럼 어떤 걸 배워야 할까요?"

"나는 당신이 그들 모두를 알게 될 것을 권합니다."

"인터뷰를 통과하고 직장에 도착하게 됩니다. Git 링크, 로그인 및 비밀번호를 받게 됩니다.

""스스로"란 무엇을 의미합니까?"

"Git을 직접 설정하고 리포지토리 사본을 직접 가져오면…"

"그런 다음 프로젝트를 빌드하고 실행해야 합니다."

"빌드 지침은 프로젝트 문서와 함께 Git 리포지토리에 있을 가능성이 높습니다."

"당신의 팀 리더는 저녁에 당신에게 와서 말할 것입니다.  «글쎄, 당신은 지금까지 무엇을 알아냈습니까?» "

"그리고 당신은 '여기에 Git을 설정하려고 하는데 아직 성공하지 못했습니다. «당신은 나를 해고하지 않을 건가요?»라고 말할 것입니다. "

"또는 아직 한낮일 때 팀장에게 가서 다음과 같이 말할 수 있습니다.  «Git를 설치하고 프로젝트를 가져오고 문서를 살펴보았지만 수백 개의 파일이 있고 아직 모든 것을 정리하지 못했습니다. 어디에서 현재 빌드 지침은 무엇입니까?'» "

"차이가 느껴지시나요?"

"예. 두 번째 경우는 제가 슈퍼 록스타 프로그래머지만 첫 번째 경우는 Git에서 프로젝트를 끌어오는 방법조차 모르는 로봇 멍청이입니다. 즉, 제가 망쳤습니다. 프로그래밍을 시작하기도 전에요. 그 후에는 코드 작성조차 허용하지 않을 것 같아요."

"보세요, 당신은 당신 자신의 질문에 답했습니다. 그러니 공부하고 알아내세요. 아무도 당신을 위해 그것을 해줄 수 없습니다."

"날 도와주지 않을거야?"

"나는 이미 도와주었다. 여기서 자바를 가르치고 있다. 당신이 잊어버렸을 경우를 대비해. 다른 모든 것은 당신이 알아서 해야 한다. 아니면 당신의 머리는 단지 술을 마시기 위한 것인가?"

"알겠습니다. 감사합니다, Bilaabo!"