基礎配置
作用范圍
配置生效范圍從小到大有三種,分別是 local,global,system
| 引數 | 作用范圍 |
|---|---|
| local | 對某個倉庫生效 |
| global | 對當前用戶所有倉庫生效 |
| system | 對系統所有登錄的用戶生效 |
常用配置
# 查看配置
git config --global --list
# 編輯配置
git config -e [--global]
# 設定提交代碼時的用戶資訊
git config --global user.name '[name]'
git config --global user.email '[email address]'
解決中文亂碼
# 解決中文亂碼問題 git status
git config --global core.quotepath false
# 解決中文亂碼問題 gitk
git config --global gui.encoding utf-8
關閉 TLS/SSL 驗證(本地部署時常用)
# To disable TLS/SSL verification for a single git command
git -c http.sslVerify=false clone https://example.com/path/to/git
# If the repository is completely under your control, you can try:
git config --global http.sslVerify false
開啟代理
# 只對github.com
git config --global http.https://github.com.proxy socks5://127.0.0.1:1080
# 取消代理
git config --global --unset http.https://github.com.proxy
創建公鑰
# 生成ssh_key密鑰
ssh-keygen -t rsa -C "[email protected]"
# 生成ssh_key密鑰(ED25519 演算法)
ssh-keygen -t ed25519 -C "[email protected]"
# 將生成的公鑰推送至服務器
ssh-copy-id [email protected]
# windows復制生成的公鑰
clip < ~/.ssh/
# mac復制生成的公鑰
pbcopy < ~/.ssh/
# Linux復制生成的公鑰
xclip -sel clip < ~/.ssh/
常用命令
獲取幫助
# 通過瀏覽器 查看命令
git help --web [command]
初始化
# 初始化倉庫
git init
單個檔案增刪改
# 講作業區的檔案添加到暫存區
git add [file]
# 講作業區所有已經被git管控的檔案提交到暫存區
git add -u
# 講已被git管理的檔案移除git管理
git rm [file]
# 變更檔案名
git mv [oldFileName] [newFileName]
提交版本
# 攜帶描述提交檔案到版本歷史庫
git commit -m 'description'
# 講作業區里的檔案攜帶描述直接提交到版本歷史庫
git commit -am 'description'
# 提交時顯示所有diff資訊
git commit -v
查看日志
# 查看HEAD移動歷史
git reflog
# 查看日志
git log
# 查看該分支的日志
git log [branch]
# 展現[number]條日志
git log --n[number]
# 查看全部分支的全部日志
git log --all
# 圖形化展示日志
git log --graph
# 僅查看日志描述
git log --oneline
# 查看簡要日志,適合查看修改
git log --stat
# 查看詳細日志,適合做代碼review
git log -p
查看改動內容
作業區比較暫存區:git add 提交內容 git diff
暫存區比較版本歷史庫上一條提交:git commit 提交內容 git diff --cached
作業區比較版本歷史庫上一條提交:git commit -a 提交內容 git diff HEAD
# 比較作業區和暫存區
git diff
# 比較暫存區和上一條提交
git diff --staged
# 比較暫存區和HEAD的差異
git diff --cached
# 比較作業目錄和上一條提交
git diff HEAD
# 比較HEAD和HEAD的前n個
git diff HEAD [HEAD-number]
# 比較HEAD和HEAD的父親
git diff HEAD HEAD^
# 比較HEAD和HEAD父親的父親
git diff HEAD HEAD^^
查看提交改動內容
# 查看當前 commit
git show
# 查看任意一個 commit
git show HASH
分支操作
# 創建/切換分支
git checkout new
# 創建并跳轉到該分支
git checkout new -b
# 查看本地全部分支
git branch -v
# 查看全部分支
git branch -av
# 洗掉分支
git branch -d new
# 強制洗掉分支
git branch -D new
# 查看遠程倉庫地址
git remote -v
變基
# 變基
git rebase
了解命令
# 查看物件型別,(輸入一段識別符號,查看他是個什么)
git cat-file -t
場景應用
設定遠端存盤
# 查看遠端倉庫
git remote -v
# 查看遠端分支
git branch -r
# 設定遠端倉庫
git remote add origin [email protected]:BingMG/java-program.git
# 設定多個遠端倉庫
git remote add github [email protected]:BingMG/java-program.git
# 上傳代碼到遠端分支
git push github
# 洗掉遠端倉庫
git remote remove github
# 設定多個遠端倉庫且同時上傳
git remote set-url --add origin [email protected]:BingMG/java-program.git
Github新建倉庫命令
# …or create a new repository on the command line
echo "# java-program" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin [email protected]:BingMG/java-program.git
git push -u origin main
# …or push an existing repository from the command line
git remote add origin [email protected]:BingMG/java-program.git
git branch -M main
git push -u origin main
本地與遠端分支的聯動
# 本地創建分支
git checkout -b new
# 遠端創建分支并推送
git push origin new
# 洗掉遠端分支
git push origin --delete new
# 先跳出將要洗掉的本地分支
git checkout master
# 洗掉本地分支(洗掉遠端分支之前)
git branch -d new
# 洗掉本地分支(洗掉遠端分支之后)
git branch -D new
變更作業環境
# 保存作業環境
git stash
# 保存作業環境,包括git未管控的檔案也添加到git管控
git stash -u
# 查看隱藏環境中保存的串列
git stash list
# 查看隱藏環境中保存的具體資訊
git stash show
# 恢復隱藏環境
git stash pop
清除本地代碼
# 清除暫存區的全部修改
git reset
# 清除作業區的全部修改
git checkout .
# 清除未被管控的檔案,-n為預演模式
git clean -n
# 回傳到某個節點, 保留修改到作業區,
git reset --soft HASH
# 回傳到某個節點,不保留修改,
git reset --hard HASH
代碼寫錯了
無腦方案
# 安全操作,反轉上上次的提交內容,形成commit,待推送至遠端
git revert HEAD^
本地提交還原
# 將需要修改的檔案添加到git管控
git add .
# 修改本地最近一次提交的提交資訊
git commit --amend
遠端提交還原
危險操作,適用單人單分支未被主分支合并場景,
# 本地修改完成之后,強制將本地版本庫覆寫到遠端
git push origin branch -f
將已提交的檔案移除git管理
需要先更新 .gitignore檔案,可通過命令列的方式直接更新
# 通過命令直接添加至git忽略檔案,注意路徑和內容
echo 'add file'>>.gitignore
執行移除操作
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
根據用戶獲取輸出行數
獲取Wisom用戶的輸出,若需要查找其他人,更換用戶名
git log --author="Wisdom" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/505595.html
標籤:其他
上一篇:Kubernetes-節點
下一篇:javascript創建新陣列
