1. 程式人生 > 其它 >git-基本用法

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