git-基本用法
git
目錄Git 有三種狀態,你的檔案可能處於其中之一:已提交(committed)、已修改(modified)和已暫存(staged)。由此引入 Git 專案的三個工作區域的概念:Git 倉庫、工作目錄以及暫存區域
配置資訊
檢視配置
# 檢視配置資訊 $ git config user.name $ git config user.email
修改配置
# 配置資訊是新安裝git後需要配置的
# 配置name
git config --global user.name '[name]'
# 配置 email
git config --global user.email '[email address]'
# 這個配置很重要,以後上傳github,gitlib時,這個上傳的顯示 name 和 email,
# 使用者名稱和郵箱地址是本地git客戶端的一個變數,不隨git庫而改變。
# 每次commit都會用使用者名稱和郵箱紀錄。
# github的contributions統計就是按郵箱來統計的。
本地新增遠端倉庫
git remote add origin 遠端倉庫地址
設定忽略檔案或目錄
新建了一個.gitignore
# 新增需要忽略的檔案路徑
# 忽略 pycharm 版本資訊
.idea/
建立專案
git init [project-name]
初始化
git clone [url]
從github,gitee 上抓取專案
基本操作
檔案新增
檢視檔案狀態
git status
提交到暫儲存區
git add .
git add file1 file2
新增所有未跟蹤檔案用
git add -A
git commit -m '[dscriptive message]'
新增所有未跟蹤檔案並且提交用
git commit -a
上傳到伺服器
git push
檔案刪除
git pull origin master
下載到本地
刪除工作區檔案,並且將這次刪除放入暫存區
git rm [file1] [file2] ...
刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除
git rm -f <file>
分支
列出分支
列出本地分支
git branch
- main
master列出遠端分支
git branch -r
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/master2列出所有分支
git branch -a
- main
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/master2
建立和切換分支
建立本地分支
新建分支
git branch branch_name
新建並進入分支
git branch -b branch_name
-b 建立並切換分支切換分支
git checkout branch_name
建立遠端分支
git push origin [name]
遠端沒有分支> 將本地分支關聯到遠端origin上
推送本地的branch_name(冒號前面的)分支到遠端origin的branch_name(冒號後面的)分支(沒有會自動建立)
git push origin branch_name:branch_name
git push origin master_1:master_1
刪除分支
刪除本地分支
git branch -d [branch-name]
刪除遠端分支
git push origin --delete <BranchName>
合併分支
合併之前先要到合併後的 分支上
例如 將dedug分支 合併到 master上
git checkout master
git merge debug
合併衝突要手動合併解決
修改設定預設主分支
git branch --set-upstream-to=origin/master—_1 master
日誌
# 獲得歷史修改記錄
git log
# 簡要日誌
git reflog
git log --follow [file]
檢視檔案的修改內容
git diff
git show
回滾
git reset [file]
撤銷檔案
git reset --hard 回滾號
git reflog
git reset --hard 回滾號
主要問題
git中新建分支後push時的"no upstream branch"問題
建立 本地和遠端分支的聯絡
git branch --set-upstream-to=origin/master master
git pull
git config --global push.default current
git push -u
Git中push.default
可以指定在沒有明確指定遠端分支的情況下,預設push的遠端分支,其取值可以是:
- nothing - push操作無效,除非顯式指定遠端分支
- current - push當前分支到遠端同名分支,如果遠端同名分支不存在則自動建立同名分支(central 和 non-central workflows都適用)
- upstream - push當前分支到它的upstream分支上(通常用於central workflow)
- simple - simple和upstream是相似的(通常用於central workflow),只有一點不同,simple必須保證本地分支和它的遠端 upstream分支同名,否則會拒絕push操作
- matching - push所有本地和遠端兩端都存在的同名分支
There is no tracking information for the current branch
方法1
git checkout 指定分支
git pull origin 指定分支
方法2
git branch --set-upstream-to=origin/newmaster newmaster