從Gitee拉取項目到上傳修改的完整流程
引言
在當(dāng)今的軟件開發(fā)中,Git已經(jīng)成為版本控制的代名詞。無論是個人項目還是團(tuán)隊協(xié)作,掌握Git的基本工作流程都是每一位開發(fā)者必備的技能。作為中國開發(fā)者常用的代碼托管平臺,Gitee提供了穩(wěn)定高效的Git服務(wù)。本文將詳細(xì)介紹從Gitee拉取項目到上傳修改的完整流程,并結(jié)合實際示例幫助讀者快速掌握Git的核心操作。
第一部分:Git基礎(chǔ)概念回顧
1.1 Git的核心工作區(qū)
在深入具體命令之前,我們需要理解Git的三個重要區(qū)域:
- 工作區(qū) (Working Directory):你實際編輯文件的地方
- 暫存區(qū) (Staging Area):準(zhǔn)備提交的文件暫存區(qū)域
- 倉庫 (Repository):存儲項目歷史記錄和版本信息
1.2 本地倉庫與遠(yuǎn)程倉庫的關(guān)系
Git的分布式特性意味著每個開發(fā)者都有完整的倉庫副本。遠(yuǎn)程倉庫(如Gitee)作為中央?yún)f(xié)作點,用于同步各個開發(fā)者的代碼變更。
第二部分:從Gitee克隆項目到本地
2.1 初始環(huán)境準(zhǔn)備
在開始之前,確保你的系統(tǒng)已經(jīng)安裝了Git??梢酝ㄟ^以下命令檢查:
git --version
如果未安裝,請訪問Git官網(wǎng)下載安裝包。
2.2 配置Git用戶信息(首次使用)
首次使用Git時,需要配置你的身份信息,這些信息會包含在每一次提交記錄中:
git config --global user.name "你的姓名" git config --global user.email "你的郵箱" git config --global core.editor "vim" 設(shè)置默認(rèn)編輯器,可選
2.3 克隆遠(yuǎn)程倉庫
克隆是將遠(yuǎn)程倉庫完整復(fù)制到本地的過程。Gitee提供兩種URL協(xié)議:
- HTTPS協(xié)議:適合初學(xué)者,無需額外配置
- SSH協(xié)議:更安全,適合頻繁操作
SSH密鑰配置(推薦):
生成SSH密鑰對 ssh-keygen -t rsa -C "your_email@example.com" 查看公鑰 cat ~/.ssh/id_rsa.pub
將公鑰內(nèi)容復(fù)制到Gitee的SSH密鑰設(shè)置頁面(個人設(shè)置 → SSH公鑰)。
克隆命令:
使用HTTPS克隆 git clone https://gitee.com/username/project-name.git 使用SSH克?。ㄅ渲煤肧SH密鑰后) git clone git@gitee.com:username/project-name.git
克隆完成后,會自動創(chuàng)建一個與倉庫同名的目錄,并初始化本地倉庫。
第三部分:日常開發(fā)工作流詳解

3.1 完整示例:從拉取到提交的全過程
讓我們通過一個具體的例子來演示完整的Git工作流程。
場景描述
假設(shè)我們加入了一個名為"blog-system"的開源項目團(tuán)隊,需要添加一個文章分類功能。
步驟1:克隆項目到本地
克隆項目 git clone git@gitee.com:team-name/blog-system.git 進(jìn)入項目目錄 cd blog-system
步驟2:查看當(dāng)前分支狀態(tài)
查看所有分支 git branch -a 輸出示例: * main remotes/origin/main remotes/origin/develop
步驟3:創(chuàng)建功能分支
良好的分支策略能保持主分支的穩(wěn)定性。我們?yōu)樾陆üδ軇?chuàng)建獨(dú)立分支:
創(chuàng)建并切換到新分支 git checkout -b feature/article-category 查看當(dāng)前分支 git branch 輸出:* feature/article-category
步驟4:獲取最新代碼(多人協(xié)作時很重要)
在開始編碼前,確保你的基礎(chǔ)代碼是最新的:
切換到主分支 git checkout main 拉取遠(yuǎn)程最新代碼 git pull origin main 切換回功能分支并合并主分支更新 git checkout feature/article-category git merge main
步驟5:進(jìn)行開發(fā)工作
現(xiàn)在可以開始編寫代碼了。假設(shè)我們創(chuàng)建了兩個新文件:
創(chuàng)建分類模型文件 touch models/category.py 創(chuàng)建分類視圖文件 touch views/category_view.py 編輯一些現(xiàn)有文件 vim controllers/article_controller.py
步驟6:查看和審查更改
完成代碼編寫后,查看我們做了哪些修改:
查看工作區(qū)狀態(tài)
git status
輸出示例:
On branch feature/article-category
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: controllers/article_controller.py
modified: README.md
#
Untracked files:
(use "git add <file>..." to include in what will be committed)
models/category.py
views/category_view.py
查看具體的代碼變更:
查看具體修改內(nèi)容 git diff controllers/article_controller.py 查看所有變更的摘要 git diff --stat
步驟7:將更改添加到暫存區(qū)
選擇性地或全部添加更改到暫存區(qū):
添加特定文件 git add models/category.py git add views/category_view.py 或者添加所有更改(謹(jǐn)慎使用) git add . 再次查看狀態(tài) git status 此時會顯示"Changes to be committed"
步驟8:提交更改到本地倉庫
提交更改 git commit -m "feat: 添加文章分類功能 - 創(chuàng)建Category數(shù)據(jù)模型 - 實現(xiàn)分類的CRUD操作 - 在文章控制器中集成分類選擇 - 更新相關(guān)文檔" 查看提交歷史 git log --oneline -5
步驟9:推送到遠(yuǎn)程倉庫
推送到Gitee git push origin feature/article-category 如果是首次推送該分支,使用-u參數(shù)建立跟蹤關(guān)系 git push -u origin feature/article-category
步驟10:創(chuàng)建合并請求(Pull Request)
推送完成后,在Gitee頁面上:
- 進(jìn)入項目頁面
- 點擊"Pull Requests"
- 點擊"新建Pull Request"
- 選擇源分支(feature/article-category)和目標(biāo)分支(develop或main)
- 填寫說明并提交
3.2 處理常見的協(xié)作場景
場景A:同步他人提交的更改
當(dāng)你正在開發(fā)時,隊友可能已經(jīng)推送了新的提交:
保存當(dāng)前未提交的更改(可選) git stash 獲取遠(yuǎn)程更新 git fetch origin 合并到當(dāng)前分支 git merge origin/main 恢復(fù)暫存的更改(如果使用了stash) git stash pop 解決可能的沖突 編輯有沖突的文件,然后: git add <解決沖突的文件> git commit -m "解決合并沖突"
場景B:撤銷錯誤的提交
撤銷最后一次提交,保留更改在工作區(qū) git reset --soft HEAD~1 完全撤銷最后一次提交,丟棄更改 git reset --hard HEAD~1 撤銷特定的提交(創(chuàng)建反向提交) git revert <commit-hash>
第四部分:從零創(chuàng)建項目并推送到Gitee

完整示例:本地新建Git項目
有時候我們需要從零開始一個項目,然后將其推送到Gitee進(jìn)行管理和協(xié)作。
步驟1:在Gitee創(chuàng)建空倉庫
- 登錄Gitee,點擊右上角"+"號
- 選擇"新建倉庫"
- 填寫倉庫名稱、描述等信息
- 不要初始化README、.gitignore等文件(我們將從本地創(chuàng)建)
- 點擊"創(chuàng)建"
步驟2:本地初始化項目
創(chuàng)建項目目錄 mkdir my-new-project cd my-new-project 初始化Git倉庫 git init 查看狀態(tài) git status
步驟3:創(chuàng)建項目文件
創(chuàng)建基礎(chǔ)項目結(jié)構(gòu) echo " My New Project" > README.md echo "__pycache__/" > .gitignore echo "*.pyc" >> .gitignore echo "venv/" >> .gitignore 創(chuàng)建源代碼目錄和文件 mkdir src touch src/main.py touch src/__init__.py 創(chuàng)建配置文件 touch config.yaml
步驟4:首次提交
添加所有文件 git add . 提交初始版本 git commit -m "初始提交:項目基礎(chǔ)結(jié)構(gòu)" 查看提交歷史 git log --oneline
步驟5:連接遠(yuǎn)程倉庫
添加遠(yuǎn)程倉庫地址 git remote add origin git@gitee.com:username/my-new-project.git 驗證遠(yuǎn)程倉庫 git remote -v 輸出: origin git@gitee.com:username/my-new-project.git (fetch) origin git@gitee.com:username/my-new-project.git (push)
步驟6:推送代碼
推送代碼到Gitee git push -u origin main 如果遇到錯誤,可能是因為遠(yuǎn)程倉庫有README文件 可以先拉取再推送 git pull origin main --allow-unrelated-histories git push origin main
步驟7:后續(xù)開發(fā)流程
現(xiàn)在項目已經(jīng)在Gitee上,后續(xù)開發(fā)就回到了我們熟悉的流程:
開發(fā)新功能
echo "print('Hello, Git!')" > src/main.py
提交更改
git add src/main.py
git commit -m "添加主程序入口"
推送更新
git push origin main
第五部分:Git最佳實踐和高級技巧
5.1 提交信息的規(guī)范
良好的提交信息有助于團(tuán)隊協(xié)作和后期維護(hù)。推薦使用Conventional Commits規(guī)范:
<類型>[可選范圍]: <描述> [可選正文] [可選腳注]
常見類型:
- feat: 新功能
- fix: 修復(fù)bug
- docs: 文檔更新
- style: 代碼格式調(diào)整
- refactor: 重構(gòu)代碼
- test: 測試相關(guān)
- chore: 構(gòu)建過程或輔助工具變動
5.2 .gitignore文件的配置
合理配置.gitignore可以避免將不必要的文件提交到倉庫:
操作系統(tǒng)文件 .DS_Store Thumbs.db 編輯器文件 .vscode/ .idea/ *.swp *.swo 運(yùn)行時文件 __pycache__/ *.pyc *.pyo 依賴目錄 node_modules/ venv/ .env 日志文件 *.log 構(gòu)建產(chǎn)物 dist/ build/
5.3 分支管理策略
推薦使用Git Flow或簡化版的分支策略:
- main/master: 生產(chǎn)就緒代碼
- develop: 開發(fā)集成分支
- feature/: 功能開發(fā)分支
- hotfix/: 緊急修復(fù)分支
- release/: 發(fā)布準(zhǔn)備分支
5.4 高效的Git命令別名
設(shè)置別名可以大大提高工作效率:
添加到~/.gitconfig或使用命令 git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status git config --global alias.unstage 'reset HEAD --' git config --global alias.last 'log -1 HEAD' git config --global alias.graph "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
第六部分:常見問題與解決方案
6.1 推送時遇到?jīng)_突
先拉取最新代碼 git pull origin main 解決沖突(編輯標(biāo)記了沖突的文件) 添加解決后的文件 git add <沖突文件> 繼續(xù)合并 git commit 重新推送 git push origin main
6.2 誤提交了敏感信息
從歷史中完全刪除包含敏感信息的文件 git filter-branch --force --index-filter \ "git rm --cached --ignore-unmatch config/password.txt" \ --prune-empty --tag-name-filter cat -- --all 強(qiáng)制推送到遠(yuǎn)程(警告:這會重寫歷史) git push origin --force --all
6.3 恢復(fù)誤刪的文件或分支
查看所有提交記錄(包括已刪除的) git reflog 恢復(fù)特定的提交 git checkout <commit-hash> -- <文件名> 恢復(fù)被刪除的分支 git checkout -b restored-branch <commit-hash>
結(jié)語
Git是一個強(qiáng)大而靈活的工具,掌握其基本工作流程是每個開發(fā)者的必修課。通過本文的詳細(xì)講解和實際示例,相信你已經(jīng)掌握了從Gitee拉取項目到上傳修改的完整流程。記住,Git的精髓在于"小步快跑,頻繁提交"——不要等到完成一個大功能才提交,而是將工作分解為多個小提交。
實踐是學(xué)習(xí)Git的最佳途徑。建議你立即創(chuàng)建一個Gitee賬戶,按照本文的示例實際操作一遍,從克隆現(xiàn)有項目開始,逐步嘗試創(chuàng)建自己的項目并推送到遠(yuǎn)程倉庫。隨著實踐的增加,你會越來越熟練地使用Git管理你的代碼。
Git常用命令速查手冊(附詳細(xì)注釋)
附件:完整命令流程示例
示例一:從Gitee克隆項目并完成首次功能開發(fā)
====================================================
第一部分:環(huán)境準(zhǔn)備和項目克隆
====================================================
1. 配置全局用戶信息(首次使用Git時需要)
git config --global user.name "張三"
git config --global user.email "zhangsan@example.com"
2. 配置SSH密鑰(可選,但推薦)
ssh-keygen -t rsa -b 4096 -C "zhangsan@example.com"
執(zhí)行后會生成~/.ssh/id_rsa和~/.ssh/id_rsa.pub文件
3. 復(fù)制公鑰到剪貼板(macOS)
pbcopy < ~/.ssh/id_rsa.pub
Linux系統(tǒng)使用:cat ~/.ssh/id_rsa.pub | xclip -selection clipboard
4. 克隆項目到本地(使用HTTPS)
git clone https://gitee.com/team-name/project.git
使用SSH克?。篻it clone git@gitee.com:team-name/project.git
5. 進(jìn)入項目目錄
cd project
====================================================
第二部分:分支管理和開發(fā)準(zhǔn)備
====================================================
6. 查看所有分支(本地和遠(yuǎn)程)
git branch -a
帶*號的是當(dāng)前所在分支
7. 創(chuàng)建并切換到新的功能分支
git checkout -b feature/user-authentication
-b參數(shù)表示創(chuàng)建新分支并切換
8. 確保本地分支與遠(yuǎn)程主分支同步
git fetch origin
獲取遠(yuǎn)程所有更新但不合并
9. 查看遠(yuǎn)程分支的更新情況
git log origin/main --oneline -5
顯示遠(yuǎn)程主分支最近5條提交
10. 合并遠(yuǎn)程主分支的更新到當(dāng)前分支
git merge origin/main
如果出現(xiàn)沖突,需要手動解決
====================================================
第三部分:開發(fā)過程中的代碼管理
====================================================
11. 開發(fā)過程中查看工作區(qū)狀態(tài)
git status
顯示哪些文件被修改、添加或刪除
12. 查看具體的文件修改內(nèi)容
git diff src/models/user.py
查看user.py文件的詳細(xì)修改
13. 添加新創(chuàng)建的文件到暫存區(qū)
git add src/models/user.py
git add src/controllers/auth_controller.py
14. 添加修改的現(xiàn)有文件
git add src/utils/validator.py
15. 批量添加所有修改和新文件(謹(jǐn)慎使用)
git add .
或者 git add --all
16. 添加時排除某些文件
git add src/* -- ':!src/tests/' ':!*.log'
添加src目錄下除了tests和.log文件外的所有
17. 從暫存區(qū)移除誤添加的文件
git reset HEAD src/config.temp.json
文件保留在工作區(qū),只是從暫存區(qū)移除
18. 查看暫存區(qū)內(nèi)容
git diff --cached
顯示即將提交的更改
19. 提交更改到本地倉庫
git commit -m "feat: 實現(xiàn)用戶認(rèn)證功能
- 添加User數(shù)據(jù)模型
- 實現(xiàn)JWT token生成和驗證
- 創(chuàng)建登錄和注冊接口
- 添加密碼加密功能
Closes #123"
多行提交信息,第一行是摘要,空行后是詳細(xì)說明
20. 查看提交歷史
git log --oneline --graph -10
顯示圖形化提交歷史,最近10條
21. 開發(fā)過程中臨時保存未完成的工作
git stash
將未提交的更改保存到臨時棧
22. 查看所有暫存的更改
git stash list
顯示stash棧中的所有條目
23. 恢復(fù)最近一次暫存的更改
git stash pop
應(yīng)用并刪除棧頂?shù)臅捍?
24. 恢復(fù)特定暫存
git stash apply stash@{1}
應(yīng)用但不刪除指定的暫存
====================================================
第四部分:推送到遠(yuǎn)程倉庫
====================================================
25. 推送當(dāng)前分支到遠(yuǎn)程倉庫(首次推送)
git push -u origin feature/user-authentication
-u參數(shù)設(shè)置上游分支,后續(xù)可直接使用git push
26. 查看遠(yuǎn)程倉庫信息
git remote -v
顯示所有遠(yuǎn)程倉庫地址
27. 查看特定遠(yuǎn)程分支的詳細(xì)信息
git remote show origin
28. 推送到遠(yuǎn)程倉庫(非首次)
git push origin feature/user-authentication
29. 強(qiáng)制推送(謹(jǐn)慎使用,會覆蓋遠(yuǎn)程歷史)
git push -f origin feature/user-authentication
僅在必要時使用,如rebase后
====================================================
第五部分:團(tuán)隊協(xié)作和代碼同步
====================================================
30. 拉取遠(yuǎn)程分支的更新
git pull origin main
相當(dāng)于git fetch + git merge
31. 使用rebase方式更新(保持線性歷史)
git fetch origin
git rebase origin/main
將本地提交應(yīng)用到遠(yuǎn)程更新之后
32. 查看文件修改歷史
git log --follow -p src/models/user.py
顯示user.py文件的完整修改歷史
33. 查看誰在什么時間修改了哪一行
git blame src/models/user.py
顯示每行代碼的最后修改者和時間
34. 撤銷上一次提交但保留更改
git reset --soft HEAD~1
回退到上一個提交,更改保留在工作區(qū)
35. 完全撤銷上一次提交
git reset --hard HEAD~1
徹底刪除上一次提交,謹(jǐn)慎使用
36. 創(chuàng)建撤銷某個提交的新提交
git revert <commit-hash>
安全的撤銷方式,會創(chuàng)建新的反向提交
示例二:本地新建項目并推送到Gitee
====================================================
第一部分:項目初始化
====================================================
1. 創(chuàng)建項目目錄
mkdir my-awesome-project
cd my-awesome-project
2. 初始化Git倉庫
git init
創(chuàng)建.git目錄,開始版本控制
3. 創(chuàng)建項目基礎(chǔ)結(jié)構(gòu)
echo " My Awesome Project" >> README.md
echo "這是項目描述" >> README.md
4. 創(chuàng)建.gitignore文件
cat > .gitignore << EOF
依賴目錄
node_modules/
venv/
__pycache__/
環(huán)境文件
.env
.env.local
日志文件
*.log
npm-debug.log*
編輯器文件
.vscode/
.idea/
*.swp
系統(tǒng)文件
.DS_Store
Thumbs.db
構(gòu)建產(chǎn)物
dist/
build/
*.exe
EOF
5. 創(chuàng)建源代碼結(jié)構(gòu)
mkdir src
mkdir tests
mkdir docs
6. 創(chuàng)建初始代碼文件
echo "def main():" > src/app.py
echo " print('Hello, World!')" >> src/app.py
echo "" >> src/app.py
echo "if __name__ == '__main__':" >> src/app.py
echo " main()" >> src/app.py
7. 創(chuàng)建測試文件
echo "import unittest" > tests/test_app.py
echo "from src.app import main" >> tests/test_app.py
====================================================
第二部分:首次提交
====================================================
8. 查看當(dāng)前狀態(tài)
git status
應(yīng)該顯示所有未跟蹤的文件
9. 添加所有文件到暫存區(qū)
git add .
或者 git add README.md .gitignore src/ tests/
10. 查看暫存區(qū)內(nèi)容
git status
文件現(xiàn)在應(yīng)該顯示為"Changes to be committed"
11. 提交初始版本
git commit -m "初始提交:項目基礎(chǔ)結(jié)構(gòu)
- 添加項目README文檔
- 配置.gitignore文件
- 創(chuàng)建源代碼和測試目錄結(jié)構(gòu)
- 實現(xiàn)基礎(chǔ)應(yīng)用程序框架"
12. 驗證提交
git log --oneline
應(yīng)該顯示剛才的提交
====================================================
第三部分:連接遠(yuǎn)程倉庫
====================================================
13. 在Gitee創(chuàng)建空倉庫后,添加遠(yuǎn)程地址
git remote add origin git@gitee.com:your-username/my-awesome-project.git
14. 驗證遠(yuǎn)程倉庫配置
git remote -v
應(yīng)該顯示fetch和push的URL
15. 重命名遠(yuǎn)程倉庫(如果需要)
git remote rename origin gitee
當(dāng)有多個遠(yuǎn)程倉庫時很有用
16. 推送到遠(yuǎn)程倉庫
git push -u origin main
如果main分支不存在,可能需要先創(chuàng)建
或者使用:git push -u origin master
17. 如果遠(yuǎn)程倉庫有初始文件導(dǎo)致沖突
git pull origin main --allow-unrelated-histories
允許合并不相關(guān)的歷史
git push origin main
====================================================
第四部分:后續(xù)開發(fā)工作流
====================================================
18. 創(chuàng)建開發(fā)分支
git checkout -b develop
19. 開發(fā)新功能
echo "def new_feature():" >> src/app.py
echo " return 'New feature implemented'" >> src/app.py
20. 測試修改
git diff
查看具體修改內(nèi)容
21. 添加并提交
git add src/app.py
git commit -m "feat: 添加新功能函數(shù)"
22. 創(chuàng)建功能分支
git checkout -b feature/calculator
23. 實現(xiàn)功能
cat > src/calculator.py << EOF
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if b == 0:
raise ValueError("除數(shù)不能為零")
return a / b
EOF
24. 添加測試
cat > tests/test_calculator.py << EOF
import unittest
from src.calculator import *
class TestCalculator(unittest.TestCase):
def test_add(self):
self.assertEqual(add(2, 3), 5)
def test_divide_by_zero(self):
with self.assertRaises(ValueError):
divide(5, 0)
EOF
25. 提交功能代碼
git add src/calculator.py tests/test_calculator.py
git commit -m "feat: 添加計算器模塊和測試"
26. 切換回開發(fā)分支并合并功能
git checkout develop
git merge feature/calculator --no-ff
--no-ff保留功能分支的歷史
27. 刪除已合并的功能分支
git branch -d feature/calculator
28. 推送開發(fā)分支
git push -u origin develop
29. 準(zhǔn)備發(fā)布版本
git checkout -b release/v1.0.0
在發(fā)布分支上進(jìn)行最后的測試和文檔更新
30. 合并到主分支
git checkout main
git merge release/v1.0.0 --no-ff
git tag -a v1.0.0 -m "版本1.0.0發(fā)布"
git push origin main --tags
31. 刪除發(fā)布分支
git branch -d release/v1.0.0
git push origin --delete release/v1.0.0
示例三:常用Git操作快捷命令
==================================================== 實用快捷命令和別名 ==================================================== 1. 設(shè)置常用別名 git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status git config --global alias.unstage 'reset HEAD --' git config --global alias.last 'log -1 HEAD' 2. 查看圖形化提交歷史 git config --global alias.graph "log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" 3. 簡潔狀態(tài)查看 git config --global alias.ss "status -s" 4. 查看最后一次提交的詳細(xì)內(nèi)容 git config --global alias.lastdetail "show --stat" 5. 使用別名 git st 查看狀態(tài) git co main 切換到main分支 git ci -m "msg" 提交 git graph 圖形化歷史 ==================================================== 高級操作和技巧 ==================================================== 6. 修改最近一次提交信息 git commit --amend -m "新的提交信息" 如果已經(jīng)推送,需要強(qiáng)制推送:git push --force-with-lease 7. 修改多個提交信息(交互式rebase) git rebase -i HEAD~3 會打開編輯器,可以修改最近3個提交 8. 將多個提交合并為一個(squash) 在rebase交互界面中,將pick改為squash 9. 查找包含特定字符串的提交 git log --all --grep="bugfix" 在所有提交中搜索包含"bugfix"的提交 10. 查找引入bug的提交 git bisect start git bisect bad 當(dāng)前版本有問題 git bisect good v1.0.0 v1.0.0版本正常 Git會自動二分查找有問題的提交 11. 清理本地已合并的分支 git branch --merged | grep -v "\*" | xargs -n 1 git branch -d 刪除所有已合并到當(dāng)前分支的分支 12. 清理遠(yuǎn)程已刪除的分支 git fetch --prune 刪除本地已不存在的遠(yuǎn)程分支引用 13. 導(dǎo)出特定版本的代碼 git archive --format=zip --output=v1.0.0.zip v1.0.0 導(dǎo)出v1.0.0標(biāo)簽版本的代碼為zip文件 14. 統(tǒng)計代碼貢獻(xiàn) git shortlog -sn --all --no-merges 顯示所有貢獻(xiàn)者的提交數(shù)量統(tǒng)計 15. 統(tǒng)計文件更改行數(shù) git log --since="2023-01-01" --until="2023-12-31" --pretty=tformat: --numstat 顯示2023年每個文件的增刪行數(shù)統(tǒng)計
示例四:錯誤處理和恢復(fù)操作
====================================================
錯誤恢復(fù)和撤銷操作
====================================================
1. 恢復(fù)誤刪的文件
先找到文件被刪除的提交
git log --all --full-history -- <file-path>
恢復(fù)文件
git checkout <commit-hash>^ -- <file-path>
2. 恢復(fù)被覆蓋的分支
查看所有操作記錄
git reflog
找到分支被刪除前的提交
git checkout -b restored-branch <commit-hash>
3. 撤銷工作區(qū)的修改(未add)
git checkout -- <file-name>
或者 git restore <file-name>
4. 撤銷暫存區(qū)的修改(已a(bǔ)dd但未commit)
git reset HEAD <file-name>
或者 git restore --staged <file-name>
5. 修改提交的作者信息
git commit --amend --author="新作者 <email>"
只修改最后一次提交
6. 批量修改作者信息
git filter-branch --env-filter '
OLD_EMAIL="舊的@郵箱.com"
CORRECT_NAME="正確的名字"
CORRECT_EMAIL="正確的@郵箱.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
7. 恢復(fù)誤操作的git reset
查看reflog找到reset前的狀態(tài)
git reflog
恢復(fù)到reset前的狀態(tài)
git reset --hard HEAD@{1}
8. 清理未跟蹤的文件
git clean -n 預(yù)覽哪些文件會被刪除
git clean -f 刪除未跟蹤的文件
git clean -fd 刪除未跟蹤的文件和目錄
9. 解決合并沖突后繼續(xù)
git add <解決沖突的文件>
git merge --continue
或者 git commit
10. 取消合并操作
git merge --abort
或者 git rebase --abort
11. 查找大文件
git rev-list --objects --all | \
git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | \
sed -n 's/^blob //p' | \
sort --numeric-sort --key=2 | \
tail -10 | \
cut -c 1-12,41- | \
$(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest
顯示倉庫中最大的10個文件
這個速查手冊涵蓋了從基礎(chǔ)到高級的Git操作,每個命令都有詳細(xì)注釋。建議將這些示例保存為腳本文件,在實際操作中參考使用。記住,Git是一個強(qiáng)大的工具,熟練掌握它會讓你的開發(fā)工作更加高效和有序。
以上就是從Gitee拉取項目到上傳修改的完整流程的詳細(xì)內(nèi)容,更多關(guān)于Gitee拉取到推送流程的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
fiddler使用方法之Fiddler顯示IP,Fiddler中文亂碼解決方法以及fiddler模擬發(fā)送get/post
今天為大家介紹fiddler的3種使用技巧,(1)Fiddler抓包顯示域名IP(2)解決Fiddler抓包時中文亂碼問題(3)利用fiddler模擬發(fā)送get/post請求的方法2018-10-10
IDEA2019.3在Plugins中搜索不到translation的解決
這篇文章主要介紹了IDEA2019.3在Plugins中搜索不到translation的解決,文中通過圖文的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
性能測試監(jiān)控網(wǎng)絡(luò)吞吐量過程詳解
這篇文章是關(guān)于性能的文章,主要介紹了性能測試中測試監(jiān)控網(wǎng)絡(luò)吞吐量過程,文中給了詳細(xì)的示例分析,有需要的朋友可以借鑒參考下2021-09-09

