git 代碼托管
一,git安裝
去Git官網(wǎng)上下載安裝即可
二,ssh -key配置
1. 檢查是否已經(jīng)有SSH Key。
$cd ~/.ssh //如果說沒有這個(gè)目錄,就直接看第三步
2. 備份
3. 生成一個(gè)新的SSH。
$ssh-keygen -t rsa -C "email" ("email" git賬號(hào))
之后直接回車,不用填寫東西。之后會(huì)讓你輸入密碼。然后就生成一個(gè)目錄.ssh ,里面有兩個(gè)文件:id_rsa , id_rsa.pub
4. 把這個(gè)SSH放到github上。用公鑰。先在GitHub上注冊(cè)一個(gè)用戶,然后進(jìn)入account-setting ,把id_rsa.pub的內(nèi)容復(fù)制進(jìn)去就可以了。
用記事本打開id_rsa.pub文件,復(fù)制內(nèi)容,在github.com的網(wǎng)站上到ssh密鑰管理頁(yè)面,添加新公鑰,隨便取個(gè)名字,內(nèi)容粘貼剛才復(fù)制的內(nèi)容。

然后把id_rsa.pub里的內(nèi)容復(fù)制進(jìn)去就可以了。

三,配置賬戶
指令:
$ git config --global user.name “your_username” #設(shè)置用戶名
$ git config --global user.email “your_registered_github_Email” #設(shè)置郵箱地址(建議用注冊(cè)giuhub的郵箱)
四,測(cè)試ssh keys是否設(shè)置成功
ssh -T git@github.com
The authenticity of host 'github.com (192.30.252.129)' can't be established.
RSA key fingerprint is 16:27:xx:xx:xx:xx:xx:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes #確認(rèn)你是否繼續(xù)聯(lián)系,輸入yes
Warning: Permanently added 'github.com,192.30.252.129' (RSA) to the list of known hosts.
Enter passphrase for key '/c/Users/xxxx_000/.ssh/id_rsa': #生成ssh kye是密碼為空則無(wú)此項(xiàng),若設(shè)置有密碼則有此項(xiàng)且,輸入生成ssh key時(shí)設(shè)置的密碼即可。
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access. #出現(xiàn)此句話,說明設(shè)置成功。
五,git指令
1.克隆代碼
git clone 地址
2.提交
//先放進(jìn)本地倉(cāng)庫(kù)
git add .
git commit -m '本次提交備注'
git status //查看倉(cāng)庫(kù)狀態(tài)
3.推到遠(yuǎn)程倉(cāng)庫(kù)
git push
4.將本地更新為最新狀態(tài)
git pull //將當(dāng)前分支綁定的遠(yuǎn)程分支的最新的修改拉取到本地,一般在我們push之前都應(yīng)該pull拉取一下查看是否有沖突
5.本地回退版本
git reflog //回溯歷史版本
git reset --hard //回溯到指定狀態(tài),只要提供目標(biāo)時(shí)間點(diǎn)的哈希值
6.分支操作
https://jingyan.baidu.com/article/48206aea68e69f216ad6b33f.html
git branch //顯示分支一覽表,同時(shí)確認(rèn)當(dāng)前所在的分支
git checkout -b aaa //創(chuàng)建名為aaa的分支,并且切換到aaa分支
(git branch aaa //創(chuàng)建名為aaa的分支
git checkout aaa // 切換到aaa分支)能和git branch -b aaa 得到同樣的效果
7.合并分支
git checkout <主分支> //先切換到合并的分支
git merge <被合并的分支> -m '填寫一個(gè)合并的信息' //再將指定分支合并到當(dāng)前分支
git push
查看當(dāng)前已合并的和未合并過的分支,可見其他分支中沒有合并的內(nèi)容
git branch --merged
git branch --no-merged
8. git 本地分支與遠(yuǎn)程分支
(參考)https://www.cnblogs.com/lianghe01/p/5806518.html
github上已經(jīng)有master分支 和dev分支
在本地
git checkout -b dev // 新建并切換到本地dev分支
git pull origin dev //本地分支與遠(yuǎn)程分支相關(guān)聯(lián)
在本地新建分支并推送到遠(yuǎn)程
git checkout -b test
git push origin test //這樣遠(yuǎn)程倉(cāng)庫(kù)中也就創(chuàng)建了一個(gè)test分支
六,一些遇到的報(bào)錯(cuò)
1.同一份文件,在你提交時(shí),有人比你更早更新了文件并上傳,使你的本地文件并非最新。因此,在你想上傳自己修改后的文件時(shí),第一步git pull時(shí),會(huì)報(bào)如下錯(cuò)誤:
error: Your local changes to the following files would be overwritten by merge:
src/test/resources/application_context.xml
Please, commit your changes or stash them before you can merge.
Aborting
為解決此問題,做如下操作
git stash
隱藏本地修改
git pull
下載最新代碼
git stash pop
從Git棧中讀取最近一次保存的內(nèi)容,恢復(fù)自己的本地修改
提示有無(wú)沖突
若有沖突,則解決沖突
若無(wú),則直接提交
git add .
git commit -m "comments"
2.當(dāng)前分支與遠(yuǎn)程分支沒有建立關(guān)聯(lián),提示運(yùn)行 git push --set-upstream origin master2 與遠(yuǎn)程倉(cāng)庫(kù)建立關(guān)聯(lián),運(yùn)行后即可通過 git push 推送成功
fatal: The current branch v2.0.6 has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin v2.0.6
復(fù)制執(zhí)行即可
git push --set-upstream origin v2.0.6