일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- c언어
- 플러터
- C언어 포인터
- Unity
- c# 추상 클래스
- jupyter
- github
- c# 윈폼
- HTML
- vim
- jupyter lab
- c# winform
- Houdini
- Python
- git
- 유니티
- Data Structure
- Algorithm
- Flutter
- C# delegate
- 구조체
- docker
- 포인터
- 다트 언어
- 도커
- C++
- 깃
- c#
- gitlab
- dart 언어
- Today
- Total
목록전체 글 (488)
nomad-programmer
git merge 명령을 실행할때마다 --no-ff 옵션을 주었다. 이유는 커밋 내역을 남기기 위함이다. 그런데 git의 전역 속성으로 추가하면 굳이 옵션을 따로 안주어도 된다. git config --global --add merge.ff false
git 을 이용한 버전 관리 시스템의 작업 흐름은 평소에는 여러 개의 브랜치와 커밋 내역을 만들고, 마지막에 작업 내역을 확인하고 올바른 작업물만 병합하는 것이다. git 의 특징 중 하나는 커밋 내역을 수정할 수 있다는 것이다. 하지만 수정할 수 있다고 해서 이미 원격 저장소에 푸시가 끝난 커밋 내역을 수정하는 것은 정말 특별한 상황이 아닌 이상 절대로 권장할만한 일이 아니다. 푸시하기 전에 git merge 명령을 이용해서 병합하면 충돌 해결 커밋이나, --no-ff 로 만든 병합 커밋을 남기게 된다. 이는 작업 흐름을 일관되게 파악하는 데는 깔끔하지 않다. 따라서 할 수 있다면 로컬 저장소에 있던 커밋을 깔끔하게 정리해서 푸시하는 것이 좋다. 그런 정리를 가능하게 하는 것이 git rebase 명령..
파일 하나를 대상으로 변경 내역을 통째로 원래대로 (변경 직전의 최종 커밋 시점으로) 되돌릴 때 사용한다. git checkout HEAD -- 파일이름 위 명령을 실행하면 파일이름 파일의 내용이 최종 커밋 시점 (HEAD 대신 다른 커밋 SHA-1 체크섬 값을 입력하면 해당 커밋 시점으로 되돌림) 으로 되돌아가게 된다. '--' 는 포함하는 것이 좋다. git checkout 명령에 뒤따라 오는 것이 파일이라는 것을 확실하게 해주는 것이다. 만약 '--' 가 없다면, 파일이름이 브랜치 이름과 같을 경우 해당 브랜치로 체크아웃하거나, 특정 커밋 시점으로 저장소 전체가 되돌아갈 수 있다. // example git checkout HEAD -- README.md cat README.md 명령을 실행하면 파..
git reset 명령은 어떤 특정 커밋을 사용하지 않게 되어 다시 되돌릴 때 사용한다. git revert 명령이 이전 커밋을 남겨두는 명령이었다면 git reset 명령은 이전 커밋을 남기지 않고 새로운 커밋을 남긴다는 차이가 있다. 또한 git reset 명령은 현재 커밋인 HEAD의 위치, 인덱스, 작업하는 저장소 디렉토리 등도 함께 되돌릴지를 선택하기 위한 모드를 지정할 수 있다. git rest 명령의 모드 모드 의미 HEAD 위치 인덱스 저장소 디렉토리 hard 완전히 되돌림 변경 변경 변경 mixed (기본값) 인덱스의 상태를 되돌림. 모드를 지정하지 않았을 때의 기본값 변경 변경 변경 안 함 soft 커밋만 되돌림 변경 변경 안 함 변경 안 함 * 인덱스(Index) 는 실제 커밋 전 변..
이미 공개된 커밋 내역을 수정하는 것은 매우 위험하다. 할 수는 있지만 "절대로" 하면 안된다. 하지만 안전하게 변경 내역을 되돌리는 방법이 있다. 커밋으로 발생한 변경 내역의 반대 커밋을 하면 된다. 즉 추가한 코드는 빼고, 지운 코드는 다시 추가하는 커밋을 하는 것이다. git revert 이 명령을 특정 지점의 커밋 SHA-1 체크섬 값을 입력하면 해당 지점까지 변경 내역을 취소하게 된다. ex) git log -5 git log 명령을 통해 특정 지점의 커밋 SHA-1 체크섬 값을 찾는다. 그 후 git revert 523a 명령을 실행한다. vim 편집기 창이 등장하면서 커밋 메시지를 수정하게 된다. 잘 살펴보면 원래의 커밋 메시지가 큰 따옴표로 묶여 있고 앞에 'Revert'라는 문자가 입력되..
마지막 커밋 메시지를 수정하는 명령은 간단하다. // 마지막 커밋 메시지 수정 git commit --amend 위 명령을 실행하면 마지막 커밋과 커밋하지 않은 상태에 있는 변경 내역이 서로 합쳐진 새 커밋을 만들게 된다. 만약 아무런 변경 내역을 만들지 않고 명령어를 실행하면 커밋 메시지만 변경하게 되는 것과 같은 효과를 낼 수 있다. 변경 내역을 만들었다면 변경 내역을 추가하기 위해 git add 명령을 실행한 후 git commit --amend 명령을 실행한다. 엄밀히 말하자면, git commit --amend는 최종 커밋을 수정하는 것이 아니라 최종 커밋을 대체하는 새로운 커밋을 만드는 것이다. 명령을 실행하기 전과 후의 커밋 SHA-1 체크섬 값을 비교해보면 확실하게 알 수 있다.
git tag 명령은 저장소의 커밋에 태그를 붙이는 명령어이다. 간단하게 그냥 버전 이름 같이 이름만을 붙이는 'light weight' 태그와 태그 작성자와 간단한 메모를 함께 태그에 남기는 'annotated' 태그가 있다. 만약 가장 최근 커밋에 태그를 붙이고 싶다면 간단하게 다음 명령을 실행하면 된다. // 가장 최근 커밋에 태그 붙이기 git tag 여기에서는 1.0이라는 버전 이름으로 태그를 붙였다. 그리고 태그가 붙여졌는지 확인하기 위해 다음 명령을 실행한다. 로그와 함께 태그를 볼 수 있다. // 태그 확인 git log --decorate -1 // 현재 저장소에 있는 태그 리스트 확인 git log -l // 태그와 커밋 SHA-1 체크섬 값을 함께 확인 git show-ref --ta..
// 관리자 모드로 작업 // 디렉토리 이동 후 파일 생성 cd /etc/systemd/system vim jupyter.service 아래의 내용을 jupyter.service 파일에 작성한다. 부분은 사용자 이름이다. 작성하고 저장한다. 그 후 서비스를 등록한다. // 데몬 시스템 리로드 systemctl daemon-reload // jupyter 서비스 등록 systemctl enable jupyter.service // jupyter 서비스 시작 systemctl start jupyter.service // jupyter 서비스 상태 systemctl status jupyter.service // 참고로 서비스 정지는... systemctl stop jupyter.service 이렇게 등록까지 ..
// usb를 삽입한 후 df -h 명령으로 어디에 마운트가 되었는지 확인한다. df -h // usb를 언마운트한다. umount /dev/sdf1 // mkfs.ntfs 명령으로 usb를 ntfs형식으로 포맷한다. mkfs.ntfs /dev/sdf1
디렉토리 설명 / 최상위에 있는 디렉토리로 root 디렉토리라고 한다. /bin 기본 실행 파일들. 즉, 사용자 명령어들이 들어있다. /boot 시스템 부팅시 필요한 파일들이 들어있다. /dev 플로피, 하드디스크, CD-ROM 드라이브 등의 각종 장치 파일들을 모아 놓는 곳이다. /etc 시스템 관리시 필요한 스크립트 파일들과 설정 파일들이 들어있다. /home 일반적으로 사용자들이 사용할 수 있는 계정의 홈 디렉토리가 위치한다. 예를 들어 linuxer라는 계정으로 로그인할 경우 이 계정의 홈 디렉토리로는 /home/linuxer이다. /lib 각종 라이브러리가 저장된 디렉토리로 커널 모듈도 이곳에 있다. /lost+found ext2 및 ext3 파일 시스템에서 파일 시스템 복구를 위한 디렉토리이다..
su -c "echo 3 > '/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'" root
환경변수에 추가하고 싶은 경로가 있다면 추가해야 한다. 허나 리눅스에서 환경변수를 추가할 수 있는 부분이 상당히 많다. 이를테면, $HOME/.bashrc, $HOME/.bash_profile, /etc/profile 등등... 그래서 만약 환경변수에 추가하고자하는 경로가 이미 존재한다면 추가하지 않도록 하는 방법을 소개한다. // path에 ffmpeg_bin_dir 경로가 없다면 추가 [[ ":$PATH:" != *":${FFMPEG_BIN_DIR}:"* ]] && PATH="${FFMPEG_BIN_DIR}:${PATH}" // ld_library_path에 ffmpeg_lib_dir 경로가 없다면 추가 [[ ":$LD_LIBRARY_PATH:" != *":${FFMPEG_LIB_DIR}:"* ]] ..