반응형 프로그래밍207 [Jenkins] Git Command CI&CD Git을 공부하면서 Jenkins로 돌린 파일이다. Git 충돌에 관해서는 CUI로 해결하기 힘들어(할 줄 몰라) 제외하였다. 마찬가지로 rebase를 하거나 충돌 관련 try는 CI에서 구현하기 힘들어(할 줄 몰라2) 제외하였다. 그래서 stage, commit, branch, merge, stash 부분만 존재한다. 프로그래밍/Jenkins 2023. 7. 4. [Git] 5. stash Git stash란, 수정중인 파일들을 잠시 임시저장해야할 경우에 주로 사용된다. 예를 들면 Commit을 하기에는 코드 수정이 완료되지 않았는데 branch를 변경 또는 다른 작업을 해야할 때... 임시저장을 하고 나중에 다시 가져와 이어 작업할 수 있다. 1. 임시저장하기 git stash하게 되면 stack에 쌓이게 된다. git stash 2. stash 리스트 확인 git stash list 3. stash 이력 확인 git stash show -p stash@{stash 번호} 4. stash 적용(apply) stash는 stack과 같이 쌓인다 하였는데 적용하는 방법은 2가지이다. C++ 기본 stack 라이브러리에서는stack에서 top을 하게되면 마지막 push의 값을 반환하나 stac.. 프로그래밍/Git 2023. 7. 4. [Jenkins] Shell script 오류나도 계속 진행하는 방법 2가지 경우가 있는데 1. Jenkins에서 Script 에러 발생 시에도 진행하는 방법 2. SCM, 즉 Jenkins에서 .sh파일을 실행하는데 파일 안에 명령어가 여러 개 일 때 오류가 나도 진행하는 방법이다. 1번의 경우아래의 블로그를 확인 https://jojoldu.tistory.com/409 2번의 경우에는 아래 코드를 확인 (feature/A로 checkout을 하는데 오류가 난다고 하였을 때 가정이다) git checkout feature/A || true # or git checkout feature/A || exit [number] 그냥 git checkout feature/A를 수행하면 오류를 뱉고 Jenkins 수행결과도 Fail이다. git checkout feature/A ||.. 프로그래밍/Jenkins 2023. 6. 24. [Linux] 프로그램 없이 Serial 통신하기 연결된 시리얼 확인 ls /dev/ttyUSB* 내가 연결한 시리얼 확인 아래 명령어 입력 후 최근 내역에 연결 로그를 보고 판단 dmesg | grep tty 접근권한 부여&재부팅 sudo usermod -a -G dialout $USER 읽기 cat /dev/ttyUSB0 쓰기 echo "쓸 데이터" > /dev/ttyUSB0 만약 GUI 환경에 프로그램으로 간편하게 하고싶다면 putty를 추천 sudo 권한으로 실행 필요 sudo apt-get install putty sudo putty 프로그래밍/Linux 2023. 6. 24. [Jenkins] Git fatal: could not read Username 오류 해결 git push를 하는데 오류가 발생, 검색했더니 워낙 정보가 없어서 헤매었다. 여기서 나오는 could not read Username오류에서 Username을 인식 못하는 건가 싶어 Username을 바꿔도 보고, git config --list도 확인하고, Credentials도 추가해 보고 별짓을 다했으나 해결되지 않았는데, 문득 jenkins로 로그인해서 직접 해보자는 생각이 들었다. 먼저 jenkins 유저 로그인해야 하는데 su로 로그인하여 아래 명령어를 입력하여 user home으로 이동한다. su -s /bin/bash jenkins cd ~/ pwd git push를 해보기 전에, 먼저 수행한 것은 .ssh 추가이다. jenkins도 서버의 한 유저이기 때문에 .ssh 키등록을 해주어야.. 프로그래밍/Jenkins 2023. 6. 7. [Git] 4. branch(2) 원격 저장소 브랜치 확인 git remote show [저장소] 로컬 브랜치 원격 저장소 업로드 git push -u [저장소 이름] [브랜치 이름] 브랜치 이름바꿔 업로드 git push -u [저장소 이름] [로컬 브랜치 이름]:[원격 브랜치 이름] 업스트림 생성 git checkout --track [저장소 이름]/[브랜치 이름] 원격 브랜치 동기화 git checkout -b [(로컬) 새 브랜치 이름] [저장소 이름]/[브랜치 이름] 업스트림 설정 (원격 저장소만 연결되고 업스트림이 설정되어 있지 않을 때) git push --set-upstream [저장소 이름] [브랜치 이름] 현재 브랜치 업스트림 추적 (기존 브랜치를 특정 원격 브랜치로 추적) git branch -u [저장소 이름]/[브.. 프로그래밍/Git 2023. 6. 5. [C,C++,C#] 구조체 padding 제거(feat. 구조체 크기 계산) 이전 글에서 구조체의 크기가 멤버 변수보다 크게 잡히는 현상을 확인했다. 2023.06.04 - [프로그래밍/C,C++,C#] - [C,C++,C#] 구조체 메모리 크기 계산 [C,C++,C#] 구조체 메모리 크기 계산 C언어를 하면 구조체를 초반부에 배우는데, 좀 더 깊게 들어가 본다. 아래 코드의 결과는? #include struct Temp{ double a; int b; char c; }; int main() { struct Temp temp; printf("struct size = %ld\n", sizeof(temp)); return 0; } park-duck.tistory.com 해결방법은 크기가 작은 멤버변수 순서로 선언하는 것이었는데, 그렇다고 char, double 순서로 놓는다고 해서 .. 프로그래밍/C,C++,C# 2023. 6. 4. [C,C++,C#] 구조체 메모리 크기 계산 C언어를 하면 구조체를 초반부에 배우는데, 좀 더 깊게 들어가 본다. 아래 코드의 결과는? #include struct Temp{ double a; int b; char c; }; int main() { struct Temp temp; printf("struct size = %ld\n", sizeof(temp)); return 0; } 결과는 16이다. 8(double) + 1(char) + 4(int) = 13으로 계산하였다면 잘못 알고 있는 것이다. 8로 기준을 잡고 순서대로 생성과정을 설명하자면, 1. double이 들어왔으니 8byte를 생성+8byte 할당 (구조체 총 크기: 8, 남은 공간: 0/8) 2. int가 들어왔으니 8byte를 생성+4byte 할당 (구조체 총 크기: 16, 남은 공.. 프로그래밍/C,C++,C# 2023. 6. 4. [C,C++,C#] 전처리 ##연산자 C계열에 ##연산자가 있다. ##의 의미는 "이어준다"라는 의미이다. 전처리이기 때문에 치환을 하고 컴파일을 하기 때문에 가능하다. 아래는 예제코드와 결과이다. 배열을 써서 for문을 사용하여 초기화하여도 되나, 배열을 사용하면 안 될 때가 있을 시(있는진 모르겠지만) 이런 방식도 있다. #define MAKE_VAR(n) int var_##n = 100+n; #define VAR_PRINT(n) printf("%d\n",var_##n); #include int main() { for(int i=0;i 프로그래밍/C,C++,C# 2023. 6. 4. [Git] 3. branch(1) 브랜치 목록 git branch (feature/master와 같이 애매모호한 이름으로 정하지 말자) 브랜치 세부 목록 git branch -v 브랜치 생성 git branch [브랜치 이름] 브랜치 이동 git checkout [branch 이름] 브랜치 생성&이동 git checkout -b [branch 이름] 브랜치 해시값(SHA1) 출력 git rev-parse [brnach 이름] 이전 브랜치 되돌리기 git checkout - 브랜치 특정 commit으로 이동 git checkout [commit hash] 브랜치 직전(상대 위치) commit 이동 git checkout HEAD~1 # 2개 이전은 HEAD~2 식으로 숫자만 바꾸면 됨 프로그래밍/Git 2023. 5. 31. [Jenkins] Git 변경 적용되지 않는 오류 해결 Jenkins를 사용하다 git checkout -b 인데, git branch -b로 오타가 나서 Git을 다시 push한 후 Jenkins를 돌렸으나 여전히 오류가 나는 상황. + git branch -b feature/feature error: unknown switch `b' Git을 확인해도, Jenkins의 git checkout을 확인해도 아무런 문제가 없었는데, Jenkins workspace를 확인해보니 수정전으로 남겨져있었다. Jenkins에서 Cache와 같은 개념이 있다고 한다. 그래서 수정이안된건데, Workspace를 삭제하는 방법이 있다. (rm -rf 명령어로 수행하기엔, 실수로 인해 애꿎은 파일만 날릴 수도있다.) 빌드환경에서 "Delete workspace before b.. 프로그래밍/Jenkins 2023. 5. 29. [Git] 계정 자동 로그인(feat. VSCode) vscode에서 push, pull, remote 등 명령어를 입력하면 Git 계정과 비밀번호를 묻는데, 계속 물어서 귀찮을 때가 많다. 아래 명령어는 로그인 정보를 요구할 때 한 번 입력하게 되면 그 정보를 저장하고 이후로는 로그인 정보를 묻지 않고 자동으로 인증한다. (해당 repository만 적용하고자하면 global옵션을 제외하자) git config --global credential.helper store # 또는 로그인 정보를 시간단위로 저장 # git config --global credential.helper 'cache --timeout 600' 아래 명렁어로 설정이 되어있는지 확인할 수 있다. git config --list 프로그래밍/Git 2023. 5. 29. 이전 1 2 3 4 5 6 7 8 ··· 18 다음 반응형