git add 명령의 동작 원리 git init 명령 수행시 변경사항 확인 User@DESKTOP-VOH9EIA MINGW64 ~/Documents $ mkdir git-test User@DESKTOP-VOH9EIA MINGW64 ~/Documents $ cd git-test User@DESKTOP-VOH9EIA MINGW64 ~/Documents/git-test $ git init Initialized empty Git repository in C:/Users/User/Documents/git-test/.git/ User@DESKTOP-VOH9EIA MINGW64 ~/Documents/git-test (master) $ ls -al total 12 drwxr-xr-x 1 User 197121 0 7월 ..
브랜치 언제 사용하나요? 새로운 기능 추가 버그 수정 병합과 리베이스 테스트 이전 코드 개선 특정 커밋으로 돌아가고 싶을 때 [] 옵션, 필수 브랜치 생성 User@DESKTOP-VOH9EIA MINGW64 ~/Documents/hello-git-cli (master) $ git log --oneline e738af6 (HEAD -> master, origin/master) 두 번째 커밋 25f256c 첫번째 커밋 User@DESKTOP-VOH9EIA MINGW64 ~/Documents/hello-git-cli (master) $ git branch * master User@DESKTOP-VOH9EIA MINGW64 ~/Documents/hello-git-cli (master) $ git branch m..
워킹트리 : 일반적인 작업이 일어나는 곳(.git 폴더를 뺀 나머지 부분) 로컬저장소 : .git 폴더, 커밋은 여기에 들어 있다 원격저장소 : 로컬저장소를 업로드 하는 곳(우리가 사용하는 GitHub 저장소) 작업 폴더=워킹트리+로컬저장소 Git 저장소 엄밀하게는 로컬저장소를 의미하지만 넓은 의미로 작업 폴더를 의미하기도 한다. git pull : 원격저장소의 변경사항을 워킹트리에 반영.(사실은 git fetch + git merge git fetch [원격저장소별명] [브랜치이름] : 원격저장소의 브랜치와 커밋들을 로컬저장소와 동기화. 옵션 생략하면 모든 원격저장소에서 모든 브랜치를 가져옴 git merge 브랜치이름 : 지정한 브랜치의 커밋들을 현재 브랜치 및 워킹트리에 반영 reset : 스테이징..
MIT 라이센스 : 이 소스를 재가공해서 재배포해도 된다는 비교적 널널한 편의 라이센스 gui git clone : new tab - remote - 저장소 clone amend : 수정 못한 파일이 있어요, 방금 만든 커밋에 추가하고 싶어요 커밋옵션 - 마지막 커밋 정정을 체크하면 확인창. 예. 커밋하면 수정돼 로컬저장소의 변경사항을 원격저장소에 강제로 덮어싀우며 푸시하는 명령은 강제푸시이다. 도구-옵션-git 탭에서 강제 푸시 가능 체크박스 선택. 푸시하면 끝.(저번에 한거처럼 공용 브랜치에는 사용x) cherry-pick : 저 커밋 하나만 떼서 지금 브랜치에 붙이고 싶어요 원하는 커밋에 오른쪽 클릭. 체리픽. reset : 옛날 커밋으로 브랜치를 되돌리고 싶어요 원하는 브랜치에 오른쪽 클릭 - 이..
가정 --- 고양이 : 원본저장소만든 개발자, 너구리 : 고양이가 만든 프로젝트보고 기능 추가하고 싶은 개발자 평생세계를 만드는 branch, 평행우주를 만드는 fork fork는 남의 저장소를 내 계정에 통째로 복제한다. 원하는 저장소를 검색으로 들어가고 오른쪽 위에 있는 fork버튼을 누르면 끝 이제 이걸 클론으로 가져오면 이전 개발자(고양이)가 만든 커밋 히스토리까지 다 보인다. 이제 수정을 하고 커밋을 하자.(대체 작성자 정보 사용으로--커밋 아이디를 살펴보자) 이제 원본저장소에 풀 리퀘스트를 보내자.(이전에 브랜치에서 했던 것과 동일) 원본저장소 주인(고양이)이 원본저장소의 insights 탭을 누르고 fork를 누르면 다른 사람이 포크했다는 것을 알 수 있다. pull request탭을 보면 ..
GUI - sourcetree master : 로컬 저장소 버전 origin/master : 원격저장소 버전 Branch : 협업할때 사용. 줄기를 가지로 나눔. merge : 브랜치와 브랜치를 합침 master에서 feature/cart, feature/detail-page로 나눠진 상태에서 head는 master에 놓고(필요하면 checkout) feature/detail-page를 merge 한다.(트리에서 오른쪽클릭 병합 또는 왼쪽 브랜치 목록에서 현재 브랜치로 feature/detail-page 병합) sourcetree에서 fast-forward가 가능해도 새 커밋으로 생성을 체크하면 명시적으로 병합 커밋을 만들어 기록이 남는다. 이건 취향차이 이제 feature/cart 브랜치를 master..
모든 프로그램은 우선 메모리에 적재되어야 실행이 가능하므로 메모리는 프로그램을 실행하는 중요한 작업 공간이다. 그리고 다중 프로그래밍 환경에서는 한정된 메모리를 여러 프로세스가 함께 사용하므로 이를 효율적으로 관리하는 방법이 필요하다. 메모리 관리는 프로세스들을 위해 메모리를 할당하고 제거하며 보호하는 활동이다. 메모리 관리와 관련된 주요 정책 1. 적재 정책 : 디스크에서 메모리로 프로세스를 반입할 시기를 결정하는 것. (요구적재, 예상적재) 2. 배치 정책 : 디스크에서 반입한 프로세스를 메모리 어느 위치에 저장할 것인지 결정. 최초적합, 최적적합, 최악적합 등 3. 대치 정책 : 메모리가 충분하지 않을 때 현재 메모리에 할당된 프로세스 중 제거할 프로세스를 결정하는 교체 방법. 선입선출, 최근최소사..
다중 프로그래밍의 장점 : 1. 프로세서 이용률 ↑. 2. 프로세서 처리율 ↑ 스케줄링 : 여러 프로세스가 번갈아 사용하는 자원을 어떤 시점에 어떤 프로세스에 할당할지 결정하는 것. 시스템의 성능에 영향 프로세스 버스트 : 프로세스를 프로세서에서 실행할 때 입출력 버스트 : 프로세스가 추가로 실행하려고 입출력을 기다리고 있을 때 프로세스는 입출력 버스트 후 다음 프로세서 버스트를 위해 준비큐로 이동 스케줄링의 단계 큐잉 도표 : 스케줄링을 표현하는 방법이다.(큐 : 사각형, 자원 : 원, 프로세스 흐름 : 화살표) 장기 스케줄러는 작업 스케줄러라고도 하며, 스케줄링에 따라 디스크에서 메모리로 작업을 가져와 처리할 순서를 결정한다. 작업 스케줄링에 필요한 정보로 제출시간, 작업이름, 작업길이(용량) 등이 ..