git-sync-checker
npx skills add https://github.com/alongor666/chexianduoweifenxi --skill git-sync-checker
Agent 安装分布
Skill 文档
Git åæ¥ç¶ææ£æ¥å¨
ç®æ
å¨å¤å°çµèï¼å ¬å¸ãå®¶éï¼ä¹é´åæ¢å¼åæ¶,èªå¨æ£æ¥ä»£ç åæ¥ç¶æ,ç¡®ä¿ä¸ä¼ä¸¢å¤±ä»£ç æäº§çå²çªã
å¿«éå¼å§
䏿¥æ£æ¥æ³
- 说åºè§¦åè¯ï¼åè¯ AI “æ£æ¥å楔ã”åå¤ä¸ç”æ”å¼å§å·¥ä½”
- æ¥çæ¥åï¼AI èªå¨æ£æ¥å¹¶çæè¯¦ç»çåæ¥ç¶ææ¥å
- æ§è¡å»ºè®®ï¼æ ¹æ®æ¥åä¸çå½ä»¤æç¤ºï¼å®æä»£ç 忥
å ¸å使ç¨ç¤ºä¾
# ä¸çå
ç¨æ·ï¼"åå¤ä¸çï¼æ£æ¥ä¸ä¸ä»£ç 忥"
AIï¼è¿è¡ git æ£æ¥ï¼åç°æ 3 ä¸ªæªæ¨éçæäº¤
AIï¼æä¾æ¨éå½ä»¤åéªè¯æ¥éª¤
# ä¸çæ¶
ç¨æ·ï¼"å¼å§å·¥ä½ï¼æåææ°ä»£ç "
AIï¼æ£æ¥è¿ç¨æ´æ°ï¼åç°æ 2 ä¸ªæ°æäº¤
AIï¼æä¾å®å
¨æåå½ä»¤
使¶ä½¿ç¨
ð ä¸çåï¼å ¬å¸çµèï¼
- åå¤ç¦»å¼å ¬å¸,éè¦ç¡®ä¿ææä»£ç å·²æ¨éå° GitHub
- 触åè¯: “åå¤ä¸ç”ã”æ£æ¥åæ¥”ã”æ¨éä»£ç ”
ð å°å®¶åï¼å®¶éçµèï¼
- ååå°å®¶,åå¤ç»§ç»å¼å
- 触åè¯: “å¼å§å·¥ä½”ã”æåææ°ä»£ç ”ã”æ£æ¥å楔
ð¢ ä¸çåï¼å ¬å¸çµèï¼
- åå°å ¬å¸,åå¤ç»§ç»å¼å
- 触åè¯: “å¼å§å·¥ä½”ã”æ£æ¥å楔
ð 任使¶å
- æ³ç¥éå½å代ç ä¸è¿ç¨ä»åºçå·®å¼
- 触åè¯: “æ£æ¥åæ¥ç¶æ”ã”gitç¶æ”
工使µç¨
宿´æ£æ¥æµç¨å¾
ç¨æ·è§¦å
â
1. è¯å«åºæ¯
(ä¸ç/ä¸ç/æ¥å¸¸æ£æ¥)
â
2. æ§è¡ Git æ£æ¥
ââ git status (æ¬å°ç¶æ)
ââ git fetch (è¿ç¨æ´æ°)
ââ git log (æäº¤å¯¹æ¯)
â
3. åæç»æ
ââ æªæäº¤çä¿®æ¹ï¼
ââ æªæ¨éçæäº¤ï¼
ââ è¿ç¨æ°æäº¤ï¼
ââ 代ç ååï¼
â
4. çææ¥å
ââ ç¶ææ»ç»
ââ é®é¢æ¸
å
ââ æä½å»ºè®®
â
5. æä¾å½ä»¤
(å¯ç´æ¥å¤å¶æ§è¡)
å³çé»è¾
- åºæ¯è¯å«ï¼æ ¹æ®è§¦åè¯åå½åç¶æå¤æç¨æ·æå¾
- ä¼å 级ï¼å æ£æ¥æ¬å°ä¿®æ¹ï¼åæ£æ¥è¿ç¨æ´æ°
- å®å ¨ååï¼æä¾å¯éçæä½å»ºè®®ï¼é¿å æ°æ®ä¸¢å¤±
- éªè¯æ¥éª¤ï¼æ¯ä¸ªæä½é½é带éªè¯å½ä»¤
æ£æ¥æµç¨
æ¥éª¤ 1: æ£æ¥åºæ¬ Git ç¶æ
# æ£æ¥å½å忝åç¶æ
git status
git branch -vv
è¯å«é®é¢:
- â
å·¥ä½åºå¹²å:
nothing to commit, working tree clean - â ï¸ ææªæåçä¿®æ¹:
Changes not staged for commit - â ï¸ ææªæäº¤çä¿®æ¹:
Changes to be committed - â ï¸ ææªè·è¸ªçæä»¶:
Untracked files
æ¥éª¤ 2: æ£æ¥ä¸è¿ç¨ä»åºçå·®å¼
# è·åè¿ç¨ä»åºææ°ä¿¡æ¯ï¼ä¸æå代ç ï¼
git fetch origin
# æ£æ¥æ¬å°ä¸è¿ç¨çå·®å¼
git status -sb
git log --oneline origin/main..HEAD # æ¬å°é¢å
çæäº¤
git log --oneline HEAD..origin/main # è¿ç¨é¢å
çæäº¤
è¯å«é®é¢:
- â
æ¬å°é¢å
:
Your branch is ahead of 'origin/main' by X commits - â ï¸ è¿ç¨é¢å
:
Your branch is behind 'origin/main' by X commits - ð´ ååäº:
Your branch and 'origin/main' have diverged
æ¥éª¤ 3: æ£æ¥æªæ¨éçæäº¤
# æ¥çæªæ¨éçæäº¤è¯¦æ
git log origin/main..HEAD --oneline
git diff origin/main..HEAD --stat
æ¥éª¤ 4: æ£æ¥æ½å¨å²çª
# æ£æ¥æ¯å¦ææ½å¨å²çªï¼æ¨¡æåå¹¶ï¼
git fetch origin
git merge-base HEAD origin/main
git diff --name-only $(git merge-base HEAD origin/main)..HEAD
git diff --name-only $(git merge-base HEAD origin/main)..origin/main
æ¥éª¤ 5: çæåæ¥æ¥å
è¾åºæ ¼å¼
åºæ¯ A: åå¤ä¸çï¼å ¬å¸çµèï¼
# ð¢ â ð åæ¥æ£æ¥æ¥å
## ð å½åç¶æ
- 忝: main
- æ¬å°æäº¤: 3 ä¸ªæªæ¨é
- å·¥ä½åº: 2 个æä»¶æä¿®æ¹
## â ï¸ éè¦å¤ççé®é¢
### 1. æªæäº¤çä¿®æ¹ï¼2个æä»¶ï¼
\```
M src/components/dashboard-client.tsx
M src/hooks/use-smart-comparison.ts
\```
**建议æä½**:
\```bash
git add .
git commit -m "feat: 宿XXXåè½å¼å"
\```
### 2. æªæ¨éçæäº¤ï¼3个ï¼
\```
e18cf2e feat: æ·»å å¤å¾è¡¨æ ç¾é¡µåè½
a1b2c3d fix: ä¿®å¤KPI计ç®ç²¾åº¦é®é¢
d4e5f6g docs: æ´æ°å¼åææ¡£
\```
**建议æä½**:
\```bash
git push origin main
\```
## â
æ¨éæ¸
å
å¨ç¦»å¼å
¬å¸å,è¯·å®æä»¥ä¸æ¥éª¤:
- [ ] æäº¤æææªä¿åçä¿®æ¹
- [ ] æ¨éæææäº¤å° GitHub
- [ ] éªè¯ GitHub ä¸è½çå°ææ°ä»£ç
- [ ] è®°å½å½åå·¥ä½ç¶æï¼å¯éï¼
## ð¯ æ¨éåéªè¯å½ä»¤
\```bash
git status # åºæ¾ç¤º "nothing to commit, working tree clean"
git log --oneline origin/main..HEAD # åºæ è¾åºï¼è¡¨ç¤ºå·²å®å
¨åæ¥ï¼
\```
åºæ¯ B: å¼å§å·¥ä½ï¼å®¶é/å ¬å¸çµèï¼
# ð /ð¢ å¼å§å·¥ä½ - åæ¥æ£æ¥æ¥å
## ð å½åç¶æ
- 忝: main
- è¿ç¨é¢å
: 3 个æäº¤
- å·¥ä½åº: å¹²å
## ð¥ éè¦æåçæ´æ°
### è¿ç¨æ°å¢çæäº¤ï¼3个ï¼
\```
e18cf2e feat: æ·»å å¤å¾è¡¨æ ç¾é¡µåè½
a1b2c3d fix: ä¿®å¤KPI计ç®ç²¾åº¦é®é¢
d4e5f6g docs: æ´æ°å¼åææ¡£
\```
### åæ´çæä»¶
\```
src/components/features/multi-chart-tabs.tsx (æ°æä»¶)
src/hooks/use-smart-comparison.ts (ä¿®æ¹)
å¼åææ¡£/01_features/F014_multi_chart_tabs/ (æ°å¢)
\```
## â
æå建议
**å®å
¨æåå½ä»¤**:
\```bash
# 1. 确认æ¬å°å·¥ä½åºå¹²å
git status
# 2. æåææ°ä»£ç
git pull origin main
# 3. éªè¯æåæå
git status
pnpm dev # å¯å¨é¡¹ç®éªè¯
\```
## â ï¸ æ³¨æäºé¡¹
- â
å·¥ä½åºå¹²å,å¯ä»¥å®å
¨æå
- ð æåå建议è¿è¡ `pnpm dev` éªè¯é¡¹ç®æ£å¸¸
- ð æ¥çæ´æ°çå¼åææ¡£äºè§£æ°åè½
åºæ¯ C: 代ç ååè¦å
# ð´ 代ç ååè¦å
## é®é¢æè¿°
æ¬å°åæ¯åè¿ç¨åæ¯å·²ç»åå:
- æ¬å°ç¬ææäº¤: 2 个
- è¿ç¨ç¬ææäº¤: 3 个
## ð åå详æ
### æ¬å°ç¬æçæäº¤
\```
a1b2c3d feat: æ·»å XXXåè½ï¼å¨å®¶éçµèä¸æäº¤ï¼
d4e5f6g fix: ä¿®å¤YYYé®é¢
\```
### è¿ç¨ç¬æçæäº¤
\```
e18cf2e feat: æ·»å ZZZåè½ï¼å¨å
¬å¸çµèä¸æäº¤ï¼
f7g8h9i fix: ä¿®å¤AAAé®é¢
j0k1l2m docs: æ´æ°ææ¡£
\```
## ð§ è§£å³æ¹æ¡
### æ¹æ¡ 1: Rebaseï¼æ¨èï¼ä¿æçº¿æ§åå²ï¼
\```bash
# 1. å¤ä»½å½å忝
git branch backup-$(date +%Y%m%d-%H%M%S)
# 2. è·åææ°è¿ç¨ä»£ç
git fetch origin
# 3. Rebase å°è¿ç¨åæ¯
git rebase origin/main
# 4. 妿æå²çªï¼è§£å³åç»§ç»
git rebase --continue
# 5. å¼ºå¶æ¨éï¼ä»
å½ç¡®å®æ¬å°æ´æ¹æ£ç¡®æ¶ï¼
git push origin main --force-with-lease
\```
### æ¹æ¡ 2: Mergeï¼ä¿ç宿´åå²ï¼
\```bash
# 1. æåå¹¶åå¹¶
git pull origin main
# 2. è§£å³å²çªï¼å¦ææï¼
# ç¼è¾æå²çªçæä»¶
# 3. æäº¤åå¹¶
git add .
git commit -m "merge: åå¹¶è¿ç¨æ´æ¹"
# 4. æ¨é
git push origin main
\```
## â ï¸ é¢é²æªæ½
1. **å§ç»å¨ä¸ç忍é代ç **
2. **å§ç»å¨å¼å§å·¥ä½åæå代ç **
3. **é¿å
å¨å¤å°çµèåæ¶å¼ååä¸åè½**
4. **使ç¨åè½åæ¯é离ä¸åçå¼åä»»å¡**
常è§åºæ¯å¤ç
åºæ¯ 1: å¿è®°æ¨éå°±ä¸çäº
çç¶: å¨å®¶éçµè䏿忶ï¼åç°æ²¡æå ¬å¸çææ°ä»£ç
è§£å³:
- 第äºå¤©å°å ¬å¸åï¼è¿è¡æ£æ¥å½ä»¤
- åç°æªæ¨éçæäº¤
- æ¨éå° GitHub
- åå®¶åéæ°æå
åºæ¯ 2: 两å°çµèé½ææªæ¨éçæäº¤
çç¶: 代ç ååï¼æ¬å°åè¿ç¨é½æç¬æçæäº¤
è§£å³:
- è¿è¡æ£æ¥å½ä»¤ï¼è¯å«åå
- éæ© Rebase æ Merge æ¹æ¡
- è§£å³å²çªï¼å¦ææï¼
- æ¨éåå¹¶åç代ç
åºæ¯ 3: ä¸ç¡®å®å½åå¨åªå°çµèä¸å·¥ä½è¿
çç¶: æ··æ·äºå·¥ä½è¿åº¦
è§£å³:
- è¿è¡æ£æ¥å½ä»¤
- æ¥çæªæ¨éçæäº¤ä¿¡æ¯
- æ¥çæäº¤æ¶é´åä½è ä¿¡æ¯
- æ ¹æ®æäº¤å 容夿
æä½³å®è·µ
â æ¨èç工使µç¨
ä¸çåï¼å ¬å¸çµèï¼:
# 1. è¿è¡åæ¥æ£æ¥
<ä½¿ç¨æ¤ skill>
# 2. æäº¤ææä¿®æ¹
git add .
git commit -m "feat: 宿XXXåè½"
# 3. æ¨éå° GitHub
git push origin main
# 4. éªè¯æ¨éæå
git log --oneline origin/main..HEAD # åºæ è¾åº
å¼å§å·¥ä½åï¼å®¶é/å ¬å¸çµèï¼:
# 1. è¿è¡åæ¥æ£æ¥
<ä½¿ç¨æ¤ skill>
# 2. æåææ°ä»£ç
git pull origin main
# 3. éªè¯é¡¹ç®æ£å¸¸
pnpm dev
# 4. å¼å§å¼å
ð å®å ¨æªæ½
-
æ°¸è¿ä¸è¦ä½¿ç¨
git push --force- é¤éä½ 100% ç¡®å®è¿ç¨ä»£ç æ¯é误ç
- 使ç¨
--force-with-leaseæ´å®å ¨
-
æäº¤åå æå
git fetch origin git status # æ£æ¥æ¯å¦æå²çª -
使ç¨åè½åæ¯
# å¨å ¬å¸å¼åæ°åè½ git checkout -b feature/new-dashboard # ä¸ç忍é git push origin feature/new-dashboard # å¨å®¶æåå¹¶ç»§ç»å¼å git fetch origin git checkout feature/new-dashboard git pull origin feature/new-dashboard -
宿忥
- ä¸è¦ç§¯ç´¯å¤ªå¤æªæ¨éçæäº¤
- 建议æ¯å®æä¸ä¸ªå°åè½å°±æ¨é䏿¬¡
æ£æ¥å½ä»¤éæ¥è¡¨
# åºç¡ç¶ææ£æ¥
git status # å·¥ä½åºç¶æ
git branch -vv # 忝ä¸è·è¸ªå
³ç³»
# ä¸è¿ç¨å¯¹æ¯
git fetch origin # è·åè¿ç¨æ´æ°ï¼ä¸åå¹¶ï¼
git log origin/main..HEAD # æ¬å°ç¬æçæäº¤
git log HEAD..origin/main # è¿ç¨ç¬æçæäº¤
# å·®å¼å¯¹æ¯
git diff origin/main # ä¸è¿ç¨ç详ç»å·®å¼
git diff --stat origin/main # 差弿件ç»è®¡
# æäº¤åå²
git log --oneline -10 # æè¿10个æäº¤
git log --graph --oneline --all # 忝å¾å½¢ååå²
# è¿ç¨ä»åºä¿¡æ¯
git remote -v # è¿ç¨ä»åºå°å
git remote show origin # è¿ç¨ä»åºè¯¦ç»ä¿¡æ¯
å·¥å ·éå¶
æ¬ skill åªè½æ£æ¥å建议,ä¸è½èªå¨æ§è¡ Git æä½ãææ Git å½ä»¤éè¦ç¨æ·æå¨æ§è¡,以确ä¿å®å ¨ã
è¾åºåå
- æ¸ æ°çç¶ææ»ç» – ç¨æ·ä¸ç¼çæå½åæ åµ
- å ·ä½çæä½å»ºè®® – æä¾å¯ç´æ¥å¤å¶æ§è¡çå½ä»¤
- é£é©æç¤º – æ æ³¨æ½å¨çé®é¢å注æäºé¡¹
- éªè¯æ¥éª¤ – åè¯ç¨æ·å¦ä½ç¡®è®¤æä½æå
é«çº§åè½
è¯å«å·¥ä½çµè
å¯ä»¥å¨ Git é ç½®ä¸ä¸ºä¸åçµè设置æ è¯:
# å¨å
¬å¸çµèä¸
git config user.name "å¼ ä¸ (å
¬å¸)"
git config user.email "zhangsan@company.com"
# å¨å®¶éçµèä¸
git config user.name "å¼ ä¸ (å®¶)"
git config user.email "zhangsan@personal.com"
è¿æ ·éè¿ git log å°±è½æ¸
æ¥çå°åªäºæäº¤æ¯å¨åªå°çµèä¸å®æçã
èªå¨æ£æ¥èæ¬ï¼å¯éï¼
å¯ä»¥å建ä¸ä¸ª pre-commit hook èªå¨æ£æ¥:
# .git/hooks/pre-commit
#!/bin/bash
git fetch origin
LOCAL=$(git rev-parse @)
REMOTE=$(git rev-parse origin/main)
if [ $LOCAL != $REMOTE ]; then
echo "â ï¸ è¦å: è¿ç¨ä»åºææ´æ°ï¼è¯·å
æåï¼"
exit 1
fi