1. 程式人生 > >mzy git學習,git協同開發忽略文件配置以及一些雜點(九)

mzy git學習,git協同開發忽略文件配置以及一些雜點(九)

回憶一個電腦多賬戶問題

之前也說了,如果使用ssh登陸的話,一個電腦就只能登陸一個賬號了,不像通過憑據可以切換(但是其實也可以每次去生成新的公鑰和私鑰,只要你不嫌麻煩)

再次補充:
ssh-keygen -t rsa -C “郵箱”
到github或者碼雲上選擇:
clone or download 把原來的use https改成use ssh

建立一個專門的use ssh的本地庫
然後它(git)自動就會去家目錄下找.ssh資料夾找到私鑰
進行登陸了,就不需要我們填密碼了!(win7及沒有憑據管理器的比較方便,而且很安全!)

跨團隊操作

跨團隊操作 先fork一份到自己的遠端庫,然後修改之後,發起一個向對方庫的一個pull request(推送申請),就可以了!

多人協作時,出現衝突,必須通過git pull origin master來合併之後,再進行push操作,這樣才能解決衝突。

多人協作時,專案上傳到git上:

配置.gitignore檔案

在家目錄下配置一個全域性的,名字任意
Java.gitignore

內容如下:

# Compiled class file 
*.class

# Log file 
*.log

# BlueJ files 
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/


# Package Files #
*.jar 
*.war 
*.nar 
*.ear 
*.zip
*.tar.gz 
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

.classpath
.project
.settings
target

然後再全域性的.gitconfig中加入配置,引入我們的git配置:

記住,一定是正斜線,不能是反斜線,就算你在windows中複製的是反斜線也要修改過來!把\修改成/,因為git是基於linux的,\反斜線git識別不了!

[core]
excludesfile = C:/Users/Administrator/Java.gitignore

eclipse中的git外掛也會受到全域性gitignore的影響,當然也可以在eclipse的git外掛中通過圖形化介面的方式進行gitignore配置
然後重新開啟eclipse,發現我們配置了全域性忽略之後,開啟navigator檢視發現,我們忽略的檔案都沒有標記了,只有我們未忽略的檔案才有?號。
windows->preferences->team->git->configuration,發現其中的user setting中core.excludesfile已經被引入了!
{
補充:在eclipse的:
windows->preferences->team->git->configuration
右側,可以看見三種settings:
1.user settings 全域性使用者級config:依照家目錄中的gitconfig
2.system settings git安裝的配置
3.repository settings 倉庫中的settings .git/config
}

ecipse 中,檔案右下角的角標:
+號:表示已經被追蹤
*號:表示已經被暫存(載入到了暫存區)

add to index 其實就是加到暫存區中備選項

開始的commit 不多講了,注意一點:
如果你的遠端庫,在建立的時候新加了一個master,但是沒有什麼內容的話,你選擇的時候,可以選擇force update,去覆蓋你遠端庫的!

回憶:

git clone下專案:
注意一點,記得轉(因為clone下來,我們忽略了很多檔案,導致這不是一個完整的專案,專案右鍵configure->convert to Maven Project)

git push -u origin master:
-u:根據自己的需要替換掉遠端的分支(第一次提交常用的)

git branch -a 檢視所有分支:-a 引數,把當前分支顯示成紅色
git branch:同樣也會顯示所有分支,當前分支顯示成綠色
git branch -r:檢視所有遠端分支。
git branch -vv: 檢視當前本地庫分支和遠端庫的關係,即:有沒有跟蹤關係(track)

刪除遠端庫中的檔案:

git rm – cached “路徑+檔名”
git commit -m “delete file”
git push

git rm --cached filename/-r directory
git commit “xxxx”
git push

建立一個本地分支和遠端分支進行關聯:

git checkout -b 分支名稱 本地庫名稱/分支名稱
git checkout -b mzy origin/mzy

以及存在本地分支和遠端分支了,需要進行關聯:

git branch -vv:
檢視當前本地庫分支和遠端庫的關係,即:有沒有跟蹤關係(track)
git branch -vv
發現有沒有建立對映關係的分支時應該怎麼樣處理?
git branch -u origin(本地倉庫名)/master(分支名)
git branch -u lsnu(本地倉庫名)/mzy(分支名)
或者這樣的命令(效果同):
git branch --set-upstream-to origin(本地倉庫名)/master(分支名)
git branch --set-upstream-to lsnu(本地倉庫名)/mzy(分支名)
撤銷對映關係:
git branch --unset-upstream
遇到的問題:

將當前目錄檔案移動到上級(專案名建重複了)

例如
mv ./git ./README.md …/