[转]gitlab之source tree使用方法
gitlab之source tree使用方法
#列出所有本地git分支 git branch #列出所有远程git分支 git branch -r #列出所有本地和远程git分支 git branch -a #切换本地dev分支 git checkout -b dev #切换远程dev分支 git checkout -b remotes/origin/dev #列出所有tag git tag #重新提交git信息 git commit --amend -m "按照规范要求书写git提交信息" --相当于上次提交git的信息被重新覆盖了 #还原git操作(适用于:还没有提交到本地git暂存区和本地git仓库里) git checkout . --回滚所有文件,之前修改的代码都没有了,等同于放弃之前所有修改操作 #回滚git操作(适用于:已经提交到本地git仓库里,还没有提交到远程git仓库里) git reflog 查看git提交的history日志 git reset --soft xxx --从本地git仓库里回滚到本地暂存区里,之前修改的代码还能保留 git reset --hard xxx --从本地git仓库里回滚到远程git仓库history上的某一个版本,之前本地所有更改代码都没有了,等同于放弃之前所有修改操作,等同于git checkout .(退回最后一个历史版本) #本地git搁置区 git stash list --查看本地git搁置区里面的搁置记录 git stash --将本地修改的代码放入本地git搁置区,如果已经放到本地git暂存区里面的代码也会放到搁置区里,同时把已经放入本地git暂存区里面的代码清空 git stash pop --取出最后一次放入本地git搁置区里面的代码,相当于把代码从本地git搁置区里拿出来,放到本地git未暂存区里面 git stash stash@{0} --取出最后一次放入本地git搁置区里面的代码的另外一种写法,这种写法可以取出某一次放入本地git搁置区里面的代码 git stash --help #删除本地git未跟踪文件和目录(只适用于本地新增文件和目录的操作) git clean -f --删除本地git未跟踪文件 untracked files git clean -fd --删除本地git未跟踪文件连 untracked 的目录也一起删掉 git clean -nf --在用上述 git clean 前,强烈建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删 git clean -nfd --在用上述 git clean 前,强烈建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
#单个项目构建 git push -o ci.variable="MESHOP_BUILD_ONLY=api" origin #多个项目构建 git push -o ci.variable="MESHOP_BUILD_ONLY=api,sso,front,crm" origin # 所有项目构建 git push -o ci.variable="MESHOP_BUILD_ONLY=王云鹏是帅哥" origin
.gitlab-ci.yml

1 default: 2 image: docker.tidebuy.net/dotnet/core/sdk:3.1 3 tags: 4 - docker 5 - company 6 7 variables: 8 # docker in docker 9 DOCKER_DRIVER: "overlay2" 10 DOCKER_HOST: tcp://localhost:2375 11 # docker private rigist 12 CI_REGISTRY: private-docker.tidebuy.net 13 CI_REGISTRY_USER: rancher 14 CI_REGISTRY_PASSWORD: rancher 15 # cache 16 NUGET_PACKAGES_DIRECTORY: ".nuget" 17 OBJECTS_DIRECTORY: "obj" 18 SOURCE_CODE_PATH: "*/*/" 19 #code quality 20 #SONAR_URL: "http://sonarqube-sonarqube.sonarqube.svc.cluster.local:9000/" 21 #SONAR_TOKEN: "95ef769de8164d8e6e4c2841f425fcc227b43bf8" 22 #SONAR_KEY: "tlz.shopify.admin.core" 23 24 stages: 25 - restore 26 - analyze 27 - compile 28 - version 29 - build 30 - deploy 31 32 restore: 33 stage: restore 34 extends: .nuget_cache 35 cache: 36 policy: pull-push 37 script: 38 - echo "dotnet restore..." 39 - dotnet restore 40 $CI_PROJECT_DIR/meshop/MeShop.sln 41 --packages $NUGET_PACKAGES_DIRECTORY 42 --runtime linux-x64 43 --configfile $CI_PROJECT_DIR/.ci/nuget.config 44 45 .nuget_cache: 46 cache: 47 key: "${CI_PROJECT_NAME}-${CI_COMMIT_REF_SLUG}" 48 paths: 49 - "$SOURCE_CODE_PATH$OBJECTS_DIRECTORY/project.assets.json" 50 - "$SOURCE_CODE_PATH$OBJECTS_DIRECTORY/*.csproj.nuget.*" 51 - "$NUGET_PACKAGES_DIRECTORY" 52 53 .docker_build: 54 image: "docker:stable" 55 services: 56 - docker:stable-dind 57 variables: 58 DOCKER_TLS_CERTDIR: "" 59 before_script: 60 - echo "Logging to GitLab Container Registry with CI credentials..." 61 - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" 62 63 .kube_deploy: 64 image: boxboat/kubectl:1.17.4 65 variables: 66 HELM_TOKEN: ${HELM_USER_TOKEN} 67 K8S_API_SERVER: ${KUBE_API_ADDRESS} 68 K8S_API_SERVER_CERT: ${KUBE_API_CA} 69 before_script: 70 - mkdir -p /home/alpine/.kube 71 - cp .ci/kube-config-template /home/alpine/.kube/config 72 - sed -i "s/{{ HELM_USER_TOKEN }}/${HELM_TOKEN}/g" /home/alpine/.kube/config 73 - sed -i "s/{{ KUBE_API_ADDRESS }}/${K8S_API_SERVER}/g" /home/alpine/.kube/config 74 - sed -i "s/{{ KUBE_API_CA }}/${K8S_API_SERVER_CERT}/g" /home/alpine/.kube/config 75 76 workflow: 77 rules: 78 - if: $MESHOP_BUILD_ONLY != null 79 when: always 80 - if: "$CI_PIPELINE_SOURCE == 'merge_request_event' || $CI_COMMIT_REF_NAME =~ /^master|alpha$/" 81 when: always 82 83 include: 84 - local: .ci/templates/sso-gitlab-ci.yml 85 - local: .ci/templates/api-gitlab-ci.yml 86 - local: .ci/templates/front-gitlab-ci.yml 87 - local: .ci/templates/crm-gitlab-ci.yml 88 - local: .ci/templates/alpha-release-gitlab-ci.yml
.ci/templates/api-gitlab-ci.yml

1 .api: 2 variables: 3 MESHOP_PROJECT_ABBREVIATION: api 4 MESHOP_PROJECT_PUBLISH_PATH: publish/${MESHOP_PROJECT_ABBREVIATION} 5 MESHOP_PROJECT_NAME: MeShop.View.API 6 rules: 7 - if: '$MESHOP_BUILD_ONLY =~ /api/i' 8 when: on_success 9 - if: '$MESHOP_BUILD_ONLY == "王云鹏是帅哥"' 10 when: on_success 11 12 13 14 api_compile: 15 stage: compile 16 extends: 17 - .nuget_cache 18 - .api 19 cache: 20 policy: pull 21 script: 22 - echo "compile ${MESHOP_PROJECT_ABBREVIATION} project." 23 - dotnet publish meshop/${MESHOP_PROJECT_NAME}/${MESHOP_PROJECT_NAME}.csproj --no-restore 24 --runtime linux-x64 -c Release -o ${CI_PROJECT_DIR}/${MESHOP_PROJECT_PUBLISH_PATH} 25 artifacts: 26 name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}" 27 paths: 28 - publish/ 29 expire_in: 1 days 30 when: on_success 31 32 api_build: 33 stage: build 34 extends: 35 - .docker_build 36 - .api 37 script: 38 - image_version="${CI_APPLICATION_TAG:-$(date +%Y%m%d%H%M%S)}" 39 - image_name="${CI_REGISTRY}/meshop/shop/${MESHOP_PROJECT_ABBREVIATION}" 40 - docker build -f .ci/Dockerfile 41 --build-arg APP_PATH="${MESHOP_PROJECT_PUBLISH_PATH}" 42 --build-arg MAIN_DLL="${MESHOP_PROJECT_NAME}.dll" 43 --build-arg PORT="7777" 44 --tag "$image_name:$image_version" 45 --tag "$image_name:latest" 46 . 47 - docker push "$image_name:$image_version" 48 - docker push "$image_name:latest" 49 needs: 50 - job: api_compile 51 artifacts: true 52 53 api_deploy: 54 stage: deploy 55 extends: 56 - .kube_deploy 57 - .api 58 script: 59 #- kubectl patch deployment test-meshop-shop-api -p "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"date\":\"`date +'%s'`\"}}}}}" 60 - kubectl rollout restart deployment/meshop-api 61 needs: 62 - job: api_build 63 artifacts: false
ci/templates/alpha-release-gitlab-ci.yml

1 compile: 2 stage: compile 3 extends: 4 - .nuget_cache 5 cache: 6 paths: 7 - "$SOURCE_CODE_PATH$OBJECTS_DIRECTORY/project.assets.json" 8 - "$SOURCE_CODE_PATH$OBJECTS_DIRECTORY/*.csproj.nuget.*" 9 - "$NUGET_PACKAGES_DIRECTORY" 10 - publish 11 script: 12 - echo "compile api project." 13 - dotnet publish 14 meshop/MeShop.View.API/MeShop.View.API.csproj 15 --no-restore 16 --runtime linux-x64 17 -c Release -o ${CI_PROJECT_DIR}/publish/api 18 - echo "compile front project." 19 - dotnet publish 20 meshop/MeShop.View.WWW/MeShop.View.WWW.csproj 21 --no-restore 22 --runtime linux-x64 23 -c Release -o ${CI_PROJECT_DIR}/publish/front 24 - echo "compile sso project." 25 - dotnet publish 26 meshop/MeShop.View.SSO/MeShop.View.SSO.csproj 27 --no-restore 28 --runtime linux-x64 29 -c Release -o ${CI_PROJECT_DIR}/publish/sso 30 only: 31 refs: 32 - master 33 - alpha 34 - merge_requests 35 36 version: 37 stage: version 38 image: meshop/semantic-release:17.1.1 39 script: 40 - semantic-release 41 - cat .version 42 artifacts: 43 paths: 44 - .version 45 expire_in: 10 hours 46 rules: 47 - if: "$CI_PIPELINE_SOURCE == 'merge_request_event'" 48 when: never 49 - if: "$CI_COMMIT_REF_NAME == 'alpha'" 50 when: on_success 51 - if: "$CI_COMMIT_REF_NAME == 'master'" 52 when: on_success 53 54 build: 55 stage: build 56 extends: 57 - .docker_build 58 - .nuget_cache 59 before_script: 60 - echo "Logging to GitLab Container Registry with CI credentials..." 61 - export REGISTRY_PASSWORD=$CI_RELEASE_REGISTRY_PASSWORD REGISTRY_USER=$CI_RELEASE_REGISTRY_USER REGISTRY=$CI_RELEASE_REGISTRY; 62 - echo "$REGISTRY_PASSWORD" | docker login -u "$REGISTRY_USER" --password-stdin "$REGISTRY" 63 script: 64 - "[ -f ./.version ] && source ./.version" 65 #api 66 - API_IMAGE="${REGISTRY}/meshop/shop/api:${VERSION}" 67 - docker build -f .ci/Dockerfile 68 --build-arg APP_PATH="publish/api" 69 --build-arg MAIN_DLL="MeShop.View.API.dll" 70 --build-arg PORT="7777" 71 --tag "$API_IMAGE" 72 . 73 - docker push "$API_IMAGE" 74 # front 75 - FRONT_IMAGE="${REGISTRY}/meshop/shop/front:${VERSION}" 76 - docker build -f .ci/Dockerfile 77 --build-arg APP_PATH="publish/front" 78 --build-arg MAIN_DLL="MeShop.View.WWW.dll" 79 --build-arg PORT="5555" 80 --tag "$FRONT_IMAGE" 81 . 82 - docker push "$FRONT_IMAGE" 83 # sso 84 - SSO_IMAGE="${REGISTRY}/meshop/shop/sso:${VERSION}" 85 - docker build -f .ci/Dockerfile 86 --build-arg APP_PATH="publish/sso" 87 --build-arg MAIN_DLL="MeShop.View.SSO.dll" 88 --build-arg PORT="9999" 89 --tag "$SSO_IMAGE" 90 . 91 - docker push "$SSO_IMAGE" 92 cache: 93 policy: pull 94 rules: 95 - if: "$CI_PIPELINE_SOURCE == 'merge_request_event'" 96 when: never 97 - if: "$CI_COMMIT_REF_NAME == 'alpha'" 98 when: on_success 99 - if: "$CI_COMMIT_REF_NAME == 'master'" 100 when: on_success
.ci/Dockerfile

1 # FROM docker.tidebuy.net/dotnet/core/sdk:3.1 AS tools-install 2 # #RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-trace 3 # RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-dump 4 # #RUN dotnet tool install --tool-path /dotnetcore-tools dotnet-counters 5 6 FROM docker.tidebuy.net/dotnet/core/aspnet:3.1 7 WORKDIR /app 8 9 COPY .ci/comic.ttf /usr/share/fonts/comic.ttf 10 COPY .ci/sources.list /etc/apt/sources.list 11 # COPY --from=tools-install /dotnetcore-tools /opt/dotnetcore-tools 12 # ENV PATH="/opt/dotnetcore-tools:${PATH}" 13 14 RUN sed -i 's/TLSv1.2/TLSv1.0/g' /etc/ssl/openssl.cnf && \ 15 sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list &&\ 16 apt-get update && \ 17 apt-get install -y libgdiplus libc6-dev postfix && \ 18 postconf -e 'mydestination=$myhostname, localhost, localhost.localdomain, localhost' &&\ 19 ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll && \ 20 apt-get clean && \ 21 rm -rf /var/lib/apt/lists/* \ 22 /etc/*/inetutils-syslogd \ 23 /tmp/* 24 25 ARG APP_PATH 26 ARG MAIN_DLL 27 ARG PORT 28 29 COPY ${APP_PATH} . 30 ENV MAIN_DLL=${MAIN_DLL} 31 32 EXPOSE ${PORT} 33 34 ENTRYPOINT ["sh", "-c","service postfix restart && /usr/bin/dotnet /app/$MAIN_DLL"]
.ci/kube-config-template

1 apiVersion: v1 2 clusters: 3 - cluster: 4 certificate-authority-data: {{ KUBE_API_CA }} 5 server: https://{{ KUBE_API_ADDRESS }} 6 name: helm 7 contexts: 8 - context: 9 cluster: helm 10 namespace: meshop-deverr 11 user: helm 12 name: helm 13 current-context: "helm" 14 kind: Config 15 preferences: {} 16 users: 17 - name: helm 18 user: 19 token: {{ HELM_USER_TOKEN }}
分类:
git
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现