1. 程式人生 > >git配置和常用命令

git配置和常用命令

github

開啟git bash(右鍵選單Git Bash Here)

// 生成rsa公鑰和私鑰 - Enter到底
>> ssh-keygen -t rsa -C "[email protected]"
/* 
    . 找到C:\Users\[使用者名稱]\.ssh目錄下id_rsa和id_rsa.pub;
    . 用文字工具開啟id_rsa.pub,全選複製;
    . 登入github,settings > SSH and GPG keys > New SSH key
    . Title隨便寫,key貼上剛複製的內容;
*/
// 
>> ssh -T 
[email protected]
// 配置 >> git config --global user.name "your name" >> git config --global user.email "[email protected]"

第一次git push 會有如下提示:

 

注意:切換其他賬號時,需在【控制面板 - 使用者賬戶 - 憑據管理器 - Windows憑據】將github資訊刪掉

git圖

git命令

  • git init
  • git config
  • git add
  • git rm
  • git status
  • git commit
  • git push
  • git pull
  • git log
  • git branch
  • git checkout
  • git remote
  • git reflog

git init

初始化一個空的git本地倉庫,                   如git init

新建一個目錄,將其初始化為Git程式碼庫,如git init <project-name>

git config

列出Git可以在該處找到的所有的設定,   如 git config --list

獲取特定專案的特定的關鍵字目前的值,如 git config user.name

設定特定專案的特定的關鍵字目前的值,如 git config user.name zhou

全域性設定特定的關鍵字目前的值,           如 git config --global user.name zhou

git add

將檔案新增到暫存區(索引),                                如git add test1.txt test2.txt

將當前目錄所有檔案都新增到暫存區,                     如git add .

將所有修改的新增的刪除的未跟蹤的新增到暫存區,如git add -A

將所有修改的刪除的新增到暫存區,                         如git add -u

新增每個變化前,都會要求確認,                             如git add -p

git rm

說明:從工作區和索引中刪除檔案

刪除工作區並停止跟蹤此檔案,                                如git rm test1.txt test2.txt

停止跟蹤此檔案但不刪除工作區檔案                         如git rm --cached test1.txt test2.txt

刪除目錄                                                                    如git rm <目錄名> -r

git status

顯示工作目錄和暫存區的狀態。

使用此命令能看到那些修改被暫存到了, 哪些沒有, 哪些檔案沒有被Git tracked到.

git commit 

-m :  提交的註釋資訊

-a : 直接將修改過的或刪除操作的檔案提交到本地倉庫

--amend: 追加提交,不增加commit-id

--help : 提交幫助

git tag

標記當前HEAD指標

git tag

git tag -a "test_tag_1" -m "test tag 1"

git push origin tag test_tag_1

git push

git push <遠端主機名> <本地分支名>:<遠端分支名>

說明::<遠端分支名>省略表示遠端分支名為與本地分支名同名的遠端分支名

如git push origin master

指定預設跟蹤關聯遠端分支用-u,以後直接就可以用git push了,如git push -u origin master 有待驗證

git pull

git pull <遠端主機名> <遠端分支名>:<本地分支名>

說明::<本地分支名>省略表示本地分支名為本地當前分支名

如git pull origin master

git log

檢視提交記錄

--pretty=oneline : 只顯示commit-id和備註資訊

--oneline:只顯示commit-id簡單形式和備註資訊

git branch

建立一個本地分支,如git branch <分支名稱>

刪除一個本地分支,如git branch -d <分支名稱>

檢視所有分支名稱,如 git branch -a

檢視遠端分支名稱,如 git branch -r

修改本地分支名稱,如 git branch -m <舊分支名稱> <新分支名稱>

刪除遠端分支名稱,如 git push origin --delete <分支名稱> 或者git push origin :<分支名稱>

git checkout

切換分支,如git checkout <分支名稱>

建立並切換分支到指定起點,如git checkout -b <分支名稱> <commit-id簡寫> 

(起點可以是之前刪除的同名的一個提交點)

git remote

說明:管理一組跟蹤的儲存庫

列出已經存在的遠端分支,                                        如git remote

列出詳細資訊,在每一個名字後面列出其遠端url,    如git remote -v

新增一個新的遠端,                                                   如git remote add <名稱> <倉庫地址>

git reflog

檢視操作記錄

每行記錄都由版本號,HEAD值和操作描述三部分組成。版本號在第一列,HEAD值在第二列,操作描述資訊在第三列。

HEAD值用來標識版本,但是不同於版本號的是,Head值是相對的。
HEAD值為HEAD時,表示為提交的最新版本;
HEAD^ 表示為最新版本的上一個版本;
HEAD^^表示為最新版本的上上個版本;
HEAD~100表示為最新版本的往上第100個版本。

.git

  本地專案git管理根目錄下都會有一個.git的隱藏資料夾,即git目錄

 HEAD

  檢視HEAD資訊

>> cat .git/HEAD
可能的結果:     ref:refs/heads/master
>> cat .git/refs/heads/master
結果:          master分支最後一次提交的commit-id

 config

  檢視config資訊

>> cat .git/config
可能的結果:
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
[remote "origin"]
        url = https://github.com/***/***.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

  rebase配置 

[branch "<bash分支名>"]
        rebase = true
// 或者
[branch]
        autosetuprebase = always

  這樣沒錯git pull就會預設帶上--rebase

  info/exclude

   忽略提交規則檔案,同.gitignore

操作

▶ 避免合併提交日誌(有待驗證

  1.     pull在每次提交前,若發現有檔案重貼或者衝突,停止pull;
  2.     commit提交;
  3.     git pull --rebase,若有衝突會停止,此時需要手動修改;
  4.     git add ***,手動修改後新增;(這次不用commit)
  5.     git rebase --continue,然後繼續重新應用;也可以放棄應用回到原始狀態;
  6.     git rebase --abort,放棄重新應用,回到rebase前的狀態;

   (說明:git pull --rebase原理,先把暫存區修改記錄儲存到rebase下,回到修改前狀態,拉程式碼合併,在將修改的記錄從rebase取出,在通過補丁方式打入到合併後代碼中,併產生一次提交記錄,廢棄pull前的原來提交記錄,若產生者衝突,要求手動修改,然後繼續合併程式碼,合併成功後再push程式碼,最後到分支記錄也只有一次提交記錄)

參考

易百教程 https://www.yiibai.com/git/