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_rsa
、id_rsa.pub
檔案,如果沒有需要手動生成。
git支援https和git兩種傳輸協議,github分享連結時會有兩種協議可選:
git協議連結圖例 : ↓
https協議連結圖例:↓
git使用https協議,每次pull, push都會提示要輸入密碼,使用git協議,然後使用ssh金鑰,這樣免去每次都輸密碼的麻煩初次使用git的使用者要使用git協議大概需要三個步驟:一、生成金鑰對二、設定遠端倉庫(本文以github為例)上的公鑰三、把git的 remote url 修改為git協議
一、生成金鑰對
大多數 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檢視,已完成拉取遠端某個分支到本地啦!