1. 程式人生 > >git 記住賬號密碼、忽略部分檔案、合併分支、將遠端分支拉取到本地

git 記住賬號密碼、忽略部分檔案、合併分支、將遠端分支拉取到本地

簡介:tortoiseGit(烏龜git)圖形化了git,我們用起來很方便,但是我們拉取私有專案的時候,每次都要輸入使用者名稱和密碼很麻煩,這裡向大家介紹怎麼避免多少輸入

試驗環境:window10,安裝的有git,tortoiseGit

首先我們找到使用者目錄(C:\Users\使用者)下的.gitconfig開啟它(window10下的.gitconfig檔案位置和win7不一樣)

在最後加入

[credential] 

     helper = store 

裡面會有你以前配置好的使用者暱稱和郵箱,如果沒有就加上去,最後結果是

 儲存退出,然後pull,push下你的私有專案,以後都不需要輸入密碼了,其實這個時候跟.gitconfig同目錄下,會產生一個.git-credentials檔案,你的使用者名稱和密碼儲存在裡面

1.1 也可以用ssh金鑰進件檔案傳輸

初次安裝git配置使用者名稱和郵箱

初次安裝git需要配置使用者名稱和郵箱,否則git會提示:please tell me who you are.

你需要執行命令來配置你的使用者名稱和郵箱:

$ git config --global user.name "superGG1990"

$ git config --global user.email "[email protected]"

注意:(引號內請輸入你自己設定的名字,和你自己的郵箱)此使用者名稱和郵箱是git提交程式碼時用來顯示你身份和聯絡方式的,並不是github使用者名稱和郵箱

git使用ssh金鑰

 在windows下檢視[c盤->使用者->自己的使用者名稱->.ssh]下是否有id_rsaid_rsa.pub檔案,如果沒有需要手動生成。

git支援https和git兩種傳輸協議,github分享連結時會有兩種協議可選:

git協議連結圖例 : 

https協議連結圖例:

       

git使用https協議,每次pull, push都會提示要輸入密碼,使用git協議,然後使用ssh金鑰,這樣免去每次都輸密碼的麻煩初次使用git的使用者要使用git協議大概需要三個步驟:一、生成金鑰對二、設定遠端倉庫(本文以github為例)上的公鑰三、把git的 remote url 修改為git協議
(以上兩個步驟初次設定過以後,以後使用都不需要再次設定,此步驟視以後專案的remote url而定,如果以後其他專案的協議為https則需要此步驟)

 一、生成金鑰對

大多數 Git 伺服器都會選擇使用 SSH 公鑰來進行授權。系統中的每個使用者都必須提供一個公鑰用於授權,沒有的話就要生成一個。生成公鑰的過程在所有作業系統上都差不多。首先你要確認一下本機是否已經有一個公鑰。

SSH 公鑰預設儲存在賬戶的主目錄下的 ~/.ssh 目錄。進去看看:

$ cd ~/.ssh
$ ls
authorized_keys2  id_dsa       known_hosts config            id_dsa.pub

看一下有沒有id_rsa和id_rsa.pub(或者是id_dsa和id_dsa.pub之類成對的檔案),有 .pub 字尾的檔案就是公鑰,另一個檔案則是金鑰。

假如沒有這些檔案,甚至連 .ssh 目錄都沒有,可以用 ssh-keygen 來建立。該程式在 Linux/Mac 系統上由 SSH 包提供,而在 Windows 上則包含在 MSysGit 包裡:

$ ssh-keygen -t rsa -C "[email protected]"

Creates a new ssh key using the provided email # Generating public/private rsa key pair.

Enter file in which to save the key (/home/you/.ssh/id_rsa):

直接按Enter就行。然後,會提示你輸入密碼,如下(建議輸一個,安全一點,當然不輸也行,應該不會有人閒的無聊冒充你去修改你的程式碼):

Enter same passphrase again: [Type passphrase again]

完了之後,大概是這樣:

Your public key has been saved in /home/you/.ssh/id_rsa.pub.
The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db [email protected]

到此為止,你本地的金鑰對就生成了。

二、新增公鑰到你的遠端倉庫(github)

 1、檢視你生成的公鑰:

$ cat ~/.ssh/id_rsa.pub
ssh
-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0X6L1zLL4VHuvGb8aJH3ippTozmReSUzgntvk434aJ/v7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8vR3c8E7CjZN733f5AL8uEYJA+YZevY5UCvEg+umT7PHghKYaJwaCxV7sjYP7Z6V79OMCEAGDNXC26IBMdMgOluQjp6o6j2KAdtRBdCDS/QIU5THQDxJ9lBXjk1fiq9tITo/aXBvjZeD+gH/Apkh/0GbO8VQLiYYmNfqqAHHeXdltORn8N7C9lOa/UW3KM7QdXo6J0GFlBVQeTE/IGqhMS5PMln3 [email protected]

2、登陸你的github帳戶。點選你的頭像,然後 Settings -> 左欄點選 SSH and GPG keys -> 點選 New SSH key

3、然後你複製上面的公鑰內容,貼上進“Key”文字域內。 title域,自己隨便起個名字。

4、點選 Add key。

完成以後,驗證下這個key是不是正常工作:

$ ssh -T [email protected]

Attempts to ssh to github

如果,看到:

Hi xxx! You've successfully authenticated, but GitHub does not # provide shell access.

恭喜你,你的設定已經成功了。

三、修改git的remote url

 使用命令 git remote -v 檢視你當前的 remote url

$ git remote -v
origin https://github.com/someaccount/someproject.git (fetch)
origin https://github.com/someaccount/someproject.git (push)

如果是以上的結果那麼說明此專案是使用https協議進行訪問的(如果地址是git開頭則表示是git協議)

你可以登陸你的github,就像本文開頭的圖例,你在上面可以看到你的ssh協議相應的url,類似:

 

複製此ssh連結,然後使用命令 git remote set-url 來調整你的url。

git remote set-url origin [email protected]:someaccount/someproject.git

然後你可以再用命令 git remote -v 檢視一下,url是否已經變成了ssh地址。

然後你就可以愉快的使用git fetch, git pull , git push,再也不用輸入煩人的密碼了

2.git 提交忽略某個檔案或資料夾

1.登入gitbash命令端進入本地git庫目錄

[email protected] MINGW32 /d/gitrespository/crmweb (master)

2.建立.gitignore

3.修改檔案,新增忽略正則

  .idea //忽略.idea資料夾及資料夾下檔案

  *.iml //忽略以.iml結尾的檔案

【例子】

# 忽略*.o和*.a檔案

 *.[oa]

# 忽略*.b和*.B檔案,my.b除外

*.[bB]

!my.b

# 忽略dbg檔案和dbg目錄

dbg

# 只忽略dbg目錄,不忽略dbg檔案

dbg/

# 只忽略dbg檔案,不忽略dbg目錄

dbg

!dbg/

# 只忽略當前目錄下的dbg檔案和目錄,子目錄的dbg不在忽略範圍內

/dbg

# 以'#'開始的行,被視為註釋.

 * ?:代表任意的一個字元
    * *:代表任意數目的字元
    * {!ab}:必須不是此型別
    * {ab,bb,cx}:代表ab,bb,cx中任一型別即可
    * [abc]:代表a,b,c中任一字元即可
    * [ ^abc]:代表必須不是a,b,c中任一字元

4.提交本地版本庫,推送到遠端專案,方便協作,專案管理

新增忽略之後,已經提交到版本庫中的檔案是無法忽略的。只能clone到本地,刪除後,再進行忽略。

.gitignore只能忽略那些原來沒有被track的檔案,如果某些檔案已經被納入了版本管理中,則修改.gitignore是無效的。

 正確的做法是在每個clone下來的倉庫中手動設定不要檢查特定檔案的更改情況。
 git update-index --assume-unchanged PATH    在PATH處輸入要忽略的檔案。


3.git  分支程式碼合併到主幹上

假如我們現在在dev分支上,剛開發完專案,執行了命令下列命令

git  checkout dev
git  add .
git  commit -m ‘dev'
git push -u origin dev
  • 1
  • 2
  • 3

然後我們要把dev分支的程式碼合併到master分支上 該如何? 
首先切換到master分支上

git  checkout master
  • 1

如果是多人開發的話 需要把遠端master上的程式碼pull下來

git pull origin master
  • 1

如果是自己一個開發就沒有必要了,為了保險期間還是pull

然後我們把dev分支的程式碼合併到master上

git  merge dev
  • 1

如果是已上線專案,切出的分支多人團隊開發,程式碼會有衝突,則先要解決衝突,才能提交。

然後檢視狀態

git status
  • 1
On branch master
Your branch is ahead of 'origin/master' by 12 commits.
  (use "git push" to publish your local commits)
nothing to commit, working tree clean
  • 1
  • 2
  • 3
  • 4

上面的意思就是你有12個commit,需要push到遠端master上 
執行下面命令即可

git push origin master

4.git 拉取遠端分支到本地

步驟:

1、新建一個空檔案,檔名為hhhh


2、初始化

    git init


3、自己要與origin master建立連線(下劃線為遠端倉庫連結)

git remote add origin [email protected]:XXXX/nothing2.git

遠端倉庫連結在github這裡,如下圖紅色框內所示的連結:


輸入命令:


4、把遠端分支拉到本地

git fetch origin dev(dev為遠端倉庫的分支名)

下圖紅色勾選的為可使用的分支名


下面拉取遠端的develop分支,命令:


5、在本地建立分支dev並切換到該分支

git checkout -b dev(本地分支名稱) origin/dev(遠端分支名稱)

命令:


6、把某個分支上的內容都拉取到本地

git pull origin dev(遠端分支名稱)

命令:


最後,回到本地資料夾hhhh檢視,已完成拉取遠端某個分支到本地啦!得意