Git仓库GitGit 相关技巧
你别睡这么晚相关资料
常用 Git 命令
[xxx]
均为可选参数
git clone
1 2 3
| git clone 仓库地址 git clone 仓库地址 --depth 1
|
git 配置
1 2 3 4 5 6
| git config --list
git config [--global] user.name "名称"
git config [--global] user.email "邮箱"
|
git 文件操作
1 2 3
| git commit -m "提交信息" git commit --amend
|
1 2 3 4 5 6 7 8 9 10 11 12
| git stash save '说明信息' -u
git stash list
git stash apply
git stash pop
git stash clear
|
git 分支操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| git branch [分支名] -r -a -d [分支名] -D [分支名] -r
git checkout --orphan [分支名]
git branch | xargs git branch -d
git branch | grep 'dev' | xargs git branch -d
git symbolic-ref --short -q HEAD git rev-parse --abbrev-ref HEAD
|
1 2 3 4 5 6 7 8
| git remote -v
git remote add [name] [url]
git remote remove [name]
git remote get-url [name]
|
1 2 3 4 5 6
| git pull [remote][branch]
git push [remote][branch]
git push [remote] --force
|
git 日志
1 2 3 4 5 6
| git log --oneline --pretty=oneline
git reflog
|
git 统计
1 2 3 4 5 6 7
| git shortlog -s -n
git rev-list --all --count
git rev-list --count [分支名]
|
git reset
1 2 3 4 5 6
| git reset --soft HEAD~1
git reset --mixed HEAD~1
git reset --hard HEAD~1
|
查看完整版 Git 命令
三年 Git 使用心得 & 常见问题整理
git 命令大全 github
删除 Git 中的所有提交历史记录
以 master
分支为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| git checkout --orphan main
git add .
git commit -m "Initial"
git branch -D master
git branch -m master
git push -f origin master
|
同步 github fork 项目上游更新
1 2 3 4 5 6 7 8 9 10 11 12 13
| git remote add upstream https://github.com/项目地址
git fetch upstream
git rebase upstream/master
git merge upstream/master
git push origin master
|
将代码提交到 github 的 gh-pages 分支
- 安装
gh-pages
1 2 3
| pnpm add -D gh-pages
npm install -D gh-pages
|
- 在
package.json
中添加如下脚本
1 2
| "deploy": "gh-pages -d dist -m deploy", "deploy:build": "npm run build && npm run deploy"
|
- 运行
deploy
脚本
1 2 3
| pnpm deploy
npm run deploy
|
使用 GitHub Actions 自动部署
GitHub Actions 是 GitHub 的持续集成服务
配置 Secrets
Action 需要有操作仓库的权限
GitHub 官方的帮助文档:创建用于命令行的个人访问令牌
打开需要配置 Actions 的仓库,进入 Settings/Secrets
页面,配置 ACCESS_TOKEN
变量,储存内容为刚刚创建的个人访问令牌
编写 workflow
文件
- 点击仓库的
Actions
按钮
- 点击
Set up a workflow yourself
按钮
- 复制如下内容
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 32 33 34 35 36 37 38
| name: GitHub Actions Build and Deploy
on: push: branches: - master
env: TZ: Asia/Shanghai
jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 with: persist-credentials: false
- name: Build run: npm install && npm run build
- name: Deploy uses: JamesIves/github-pages-deploy-action@releases/v3 with: ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} BRANCH: gh-pages FOLDER: dist
|
相关资料
git log
格式化
修改默认时间格式
1
| git config --global log.date iso8601
|
relative
: 相对时间格式
local
: 本地格式
iso
OR iso8601
: ISO8601
格式
rfc
: RFC2822
格式
short
: YYYY-MM-DD
格式
raw
: 时间戳格式
default
: 默认格式
自定义输出格式
1 2 3 4 5
| git log --pretty='%C(yellow)%h%C(reset) %ad %C(green)%s%C(reset) %C(red)%d%C(reset) %C(bold blue)[%an]%C(reset)'
alias glogp="git log --pretty='%C(yellow)%h%C(reset) %ad %C(green)%s%C(reset) %C(red)%d%C(reset) %C(bold blue)[%an]%C(reset)'"
|
%C(颜色值)
: 修改输出颜色
%H
: 完整的 commit hash
%h
: 缩写的 commit hash
%ad
: 提交时间(绝对时间 可以使用 -date=
定制格式)
%ar
: 提交时间(相对时间 按多久之前显示)
%s
: commit message
%d
: branch tag
信息
%an
: 作者名称
%ae
: 作者的邮箱地址
本地不同分支关联不同的远程仓库
clone
仓库 mm-notes
(默认的 remote
为 origin
)
1
| git clone https://github.com/maomao1996/mm-notes
|
- 添加远程仓库
daily-notes
(remote
取名为 daily-notes
)
1
| git remote add daily-notes http://github.com/maomao1996/daily-notes
|
- 拉取
daily-notes
的 master
分支到本地(本地分支名为 notes
)
1 2 3 4
| git fetch daily-notes master:notes
git push daily-notes notes:master
|
- 关联分支(本地分支
notes
关联远程仓库 daily-notes
的 master
分支)
本地分支关联远程分支后,可直接使用 git push
和 git pull
命令
1
| git branch --set-upstream-to=daily-notes/master notes
|
- 提取
master
分支的指定提交到 notes
分支
1 2 3 4 5 6 7 8 9 10 11
| git checkout notes
git log --oneline master
git cherry-pick <commit hash>
git push
|