일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- c# 윈폼
- github
- 유니티
- Unity
- 깃
- jupyter
- c언어
- 플러터
- Algorithm
- Flutter
- git
- 다트 언어
- c# winform
- 구조체
- Python
- vim
- C# delegate
- jupyter lab
- C언어 포인터
- Data Structure
- docker
- dart 언어
- gitlab
- HTML
- c#
- c# 추상 클래스
- Houdini
- C++
- 도커
- 포인터
- Today
- Total
목록전체 글 (507)
nomad-programmer
원격 저장소를 이용하다 보면 다른 누군가가 커밋할 경우가 있다. 예를 들면, 로컬 저장소에서 작업하는 도중에 다른 협업자가 원격 저장소를 먼저 변경할 수 있는 것 등이다. 이런 경우 git은 푸시를 허용하지 않는다. 로컬 저장소의 커밋들을 원격 저장소와 맞춰야 한다. 이럴 때 하는 것이 페치(fetch) 이다. fetch 는 원격 저장소와 커밋들을 로컬 저장소로 가져온다. 사용자는 로컬로 가져온 커밋들을 자신이 여태까지 한 로컬 저장소의 작업과 적절히 병합해서 원격 저장소에 제출해야 한다. 원격 저장소의 커밋들을 로컬 저장소로 가져와 합하는 방법은 git fetch 와 git pull 크게 두 가지가 있다. git pull 명령은 원격 저장소의 정보를 가져오면 자동으로 로컬 브랜치에 병합까지 수행하는 것..
git push 명령은 기본적으로 커밋들을 원격 저장소의 master 브랜치에 업로드하며, 다양한 옵션을 통해 특정 브랜치의 내용을 업데이트하거나 태그(tag)를 푸시하는 등의 작업을 한다. git push origin --all 위의 명령은 일반화하자면 git push 원격저장소별칭 로컬브랜치이름 --all 옵션은 origin 저장소에 로컬의 모든 브랜치를 푸시하는 것이다. git은 원격 저장소에 로컬 저장소의 브랜치와 같은 이름의 브랜치가 있다면 해당 브랜치를 변경하고 없다면 새 브랜치를 원격 저장소에 만든다. 단, 주의할 점은 같은 이름의 브랜치가 있는데 서로의 내역이 다르다면 푸시를 거부한다. 즉, 백지상태인 원격 저장소에 로컬 저장소에서 작업한 것을 푸시해야 한다.
기본적으로 여러 사람과 협업할 때는 빈 원격 저장소를 만들고 협업을 책임지는 사람이 기본 프로젝트 구조를 만든 후, 이를 관리하고 협업하는 사람 모두가 빈 원격 저장소를 클론해서 본인이 해야 하는 작업을 진행하면 된다. 그러면 협업을 책임지는 사람이 기존에 이미 작업해놓은 로컬 저장소가 있고 이를 원격 저장소와 연결한다고 생각해보자. 빈 원격 저장소를 클론하고 기존에 작업하던 파일들을 옳기는 것도 가능하겠지만 번거롭기도 하고 뭔가 이치에도 맞지 않는다. 그래서 git에서는 로컬 저장소를 빈 원격 저장소와 연결하는 명령이 있다. git remote 이다. 이 명령은 원격 저장소와 연결하는 것은 물론 원격 저장소와의 연결 상태를 확인하거나 원격 저장소의 긴 주소를 병칭으로 지어 줄여주기까지 한다. * git..
분산 버전 관리 시스템은 다른 사람과의 협업을 염두에 둔 것이다. 결국 원격 저장소와 로컬 저장소 사이를 얼마나 효율적으로 관리하느냐가 관건이다. 관리는 위해 git에서는 원격 저장소와 소통하기 위한 기능을 제공한다. 원격 저장소의 내용을 로컬 저장소로 가져오거나, 로컬 저장소를 원격 저장소와 연결하고 보내거나, 수정된 내역을 확인하고 병합하는 등의 과정을 제공한다. 명령어 기능 git clone 원격 저장소의 모든 내용을 로컬 저장소로 복사 git remote 로컬 저장소를 특정 원격 저장소와 연결 git push 로컬 저장소의 내용을 보내거나 로컬 저장소의 변경 사항을 원격 저장소로 보낸다 git fetch 로컬 저장소와 원격 저장소의 변경 사항이 다를 때 이를 비교 대조하고 git merge 명령어..
github는 기본적으로 각 사용자가 원격 저장소를 만들고 해당 원격 저장소를 다른 사용자와 공유하는 개념이다. 따라서 원격 저장소의 관리는 사용자 관리와 밀접한 관련이 있다. 이러한 관리를 세분화하기 위해 github는 공개(public) 원격 저장소와 비공개(private) 원격 저장소로 나뉜다. 비공개 원격 저장소와 공개 원격 저장소 특징 원격 저장소 특징 공개 원격 저장소 저장소 관리자, 협업자(collaborators) 이외에는 쓰기 권한이 없다. github 사용자라면 누구나 읽기 권한과 포크 권한이 있다. github 사용자 누구에게든 소유권을 이전할 수 있다. 비공개 원격 저장소 관리자가 지정한 협업자만 접근해서 다룰 수 있다. 지정한 협업자에게만 포크 기능이 열려있다. 유료 사용자에게만 ..

https://github.com Build software better, together GitHub is where people build software. More than 40 million people use GitHub to discover, fork, and contribute to over 100 million projects. github.com 위의 링크를 타고 들어가 가입한다. 지불하는 비용에 따라서 비공개 저장소를 얼마나 사용할 수 있는지가 정해진다. 무료로 이용한다면 github에서 생성하는 모든 저장소는 공개 저장소가 된다. * Help me set up an organization next 체크 박스는 많은 사람이 협업 할 때 팀을 만들어서 활동하도록 설정하겠다는 의미이다. 원..
git은 혼자만 사용하려고 배우는 것이 아니다. 물론 개인 프로젝트에도 git과 같은 버전 관리 시스템을 활용하는 의미가 있지만, git은 무엇보다도 다른 사람들과 협업을 하기 위한 도구로서의 의미가 더 크다. 협업 도구로서 git의 가장 큰 유용함은 원격 저장소(remote repository)이다. 원격저장소와 GitHub 무엇보다도 협업할 때 중요한 개념이 git의 원격 저장소 부분이다. 물론 로컬 환경에서만 git을 사용해 개인 프로젝트를 관리하는 것도 git의 훌륭한 사용 방법 중 한 가지다. 하지만 git이 무엇보다 좋은 이유는 원격 저장소 때문이다. git의 핵심이라고 이야기할 정도다. 이러한 git 원격 저장소를 제공하는 대표적인 서비스가 github이다. github는 단순히 원격 저장소..
프로젝트 작업을 계속하다 보면 언제 어떤 작업 후에 커밋을 했는지 헷갈리기 시작한다. 혹은 여러 사람이 저장소에 접근해서 커밋한다면 더 그럴 수 있다. 따라서 커밋 내역을 확인 할 수 있는 기능이 필요한데 그것이 바로 git log 명령이다. 기본적으로 40글자의 SHA-1 체크섬 값, 커밋한 사용자, 커밋 시각, 커밋 메시지 등의 커밋 내역을 확인할 수 있다. --graph 옵션의 경우, 맨 왼쪽을 살펴보면 녹색과 빨간색 세로 점선이 나누어진 것을 볼 수 있다. 이는 브랜치의 분기 내역을 보여주는 것이다. git log 명령의 옵션 옵션 설명 git log -p 각 커밋에 적용된 실제 변경 내용을 보여준다. git log --word-diff diff 명령의 실행 결과를 단어 단위로 보여준다. git ..
프로젝트를 진행하다 보면 부수적으로 다양한 파일이 만들어진다. 굳이 추적해야 할 필요가 없는 파일들이다. 보통은 입/출력용 데이터나 각종 로그 파일들 혹은 사용하는 IDE에 따라 프로젝트 자체를 관리하는 파일들인 경우다. 이런 파일들은 프로젝트의 일부지만 git을 이용해 굳이 추적할 필요가 없다. 이렇게 저장할 필요 없는 파일들을 적절하게 무시하기 위해 git은 .gitignore라는 파일을 이용한다. .gitignore 파일은 일련의 파일 목록과 파일을 구분할 수 있는 패턴의 모음으로 라인 하나가 패턴 하나를 가리킨다. 더 자세한 내용은 아래의 링크에서 볼 수 있다. https://git-scm.com/docs/gitignore Git - gitignore Documentation The optiona..
목표 명령어 설명 사용자 이름 설정 git config --global user.name "" 입력한 사용자 이름으로 정보 설정 사용자 이메일 주소 설정 git config --global user.email "" 입력한 사용자 이메일 주소로 정보 설정. (github의 이메일 주소와 동일한 주소로 하는 것이 좋음) 저장소 생성 git init 실행한 위치를 git 저장소로 초기화 저장소에 파일 추가 git add 해당 파일을 git이 추적할 수 있도록 저장소에 추가 저장소에 수정 내역 제출 git commit 변경된 파일을 저장소에 제출 저장소에 모든 수정 내역 제출 git commit -a[m] [commit 메세지] 변경된 저장소 파일 모두를 commit. 옵션 m을 붙이면 commit 메세지를 함..
* git history 를 직관적으로 한 눈에 볼 수 있는 프로그램. https://githistory.xyz/ Git History githistory.xyz 위의 링크를 클릭하여 가보면, 자세한 설명이 되어있다. 크롬, 파이어폭스, 터미널, 비쥬얼 스튜디오 등 지원한다. * github에서 파일들을 트리구조로 볼 수 있는 프로그램 (chrome 전용 extension) https://chrome.google.com/webstore/detail/octotree/bkhaagjahfmjljalopjnoealnfndnagc

Git이란? 버전 관리는 위한 분산 버전 관리 시스템이다. 프로젝트에 관련된 리소스 중 제일 빈번하게 생성, 삭제, 수정되는 것은 코드이다. 단 한 줄의 코드로 버그가 생기느냐, 성능이 향상되느냐가 갈리니 미세한 차이가 있는 버전들이라고 해도 그냥 넘어가지 않는다. 수많은 버전 관리 시스템들도 그 필요성을 절감하기 때문에 등장한 것이다. Git은 완벽한 분산 환경에서 빠르고 단순하게 수백 수천 개의 동시 다발적인 브랜치 작업을 수행하는 것을 목표로 하는 버전 관리 시스템이다. 그리고 git을 만든 리누스 토발즈의 의도와 같이 리눅스 커널 같은 대형 프로젝트의 버전 관리를 가능하게 하는 것 또한 목표이다. Git의 일반적인 특징 로컬 및 원격 저장소 생성 로컬 저장소에 파일 생성 및 추가 수정 내역을 로컬..