Git----筆記

初始化git倉庫:

git init

自報家門:

git config --global user.name "xxxx"

git config --global user.email "xxxx"

把文件添加到倉庫(添加前必須文件已存在):

git add readme.txt

提交到倉庫:

git commit -m "xxxxx"

xxxxx:本次提交說明

查看目前git狀態(tài):

git status

察看提交歷史記錄:

git log

如果煙花繚亂,可以加上參數(shù):

git log --pretty=oneline

回滾到上一版本:

git reset --hard HEAD^

再回到未來某個版本:

git reset --hard xxxxxxx

git提供了一個git reflog命令來記錄你的每一次命令。

git reflog

git add實際上是把文件修改添加到暫存區(qū)

git commit實際上是把暫存區(qū)的所有內(nèi)容提交到當前分支。

當你亂修改工作區(qū)的內(nèi)容,想丟棄工作區(qū)的修改:

git checkout -- file

當你不但亂改了工作區(qū)的內(nèi)容,還修改了暫存區(qū)的內(nèi)容,想丟棄修改,分兩步:

1:git reset HEAD file

2: git checkout -- file

假設(shè)你刪除了某個文件,有兩個選擇,第一是你確實想刪除某個文件,那就是:

git rm file

第二就是在你刪錯了,想還原,那就是:

git checkout -- file

創(chuàng)建sshkey:

ssh-keygen -t rsa -C "youemail@example.com"

接下來一路回車,生成兩個文件:id_rsa是私匙,不能泄露。id_rsa.pub是公匙??梢苑判母嬖V任何人

登陸github,add ssh key,title任意填寫,key里邊粘貼id_rsa.pub內(nèi)容即可。

遠端先創(chuàng)建一個倉庫,點擊Create a new repo,填寫倉庫名字learngit,其他默認,點擊Create repository。

關(guān)聯(lián)一個遠程庫:

git remote add origin git@github.com:guangmangdz/learngit.git

接下來再推送:

git push -u origin master,實際上就是把當前分支推送到遠程。由于遠端庫是空的,所以加了-u參數(shù),以后可以不加。

從現(xiàn)在起,只要本地做了提交,就可以通過命令:

git push origin master,把本地master分支最新更改推送之github。

從遠程庫克?。?/p>

git clone git@github.com:xxxxxxxx/xxxxx.git

接下來:分支管理

創(chuàng)建分支,例如dev:

git checkout -b dev

也可以用一下兩條命令創(chuàng)建:

git branch dev,創(chuàng)建dev分支

git checkout dev,切換到dev分支

列出當前分支:

git branch

合并分支:

git merge dev,操作前提是已經(jīng)處于master分支狀態(tài)

合并完成后,就可以放心的刪除dev分支了:

git branch -d dev

察看git分支合并圖:

git lob --graph

正常的合并是fast forward模式,當然也可以禁用:

git merge --no-ff -m "merge with no-ff" dev

首先,master分支應(yīng)該是非常穩(wěn)定的,也就是用來發(fā)布新版本,平時不用在上面干活。干活都在dev分支上,也就是說,你和你的小伙伴們每個人都在dev分支上干活,每個人都有自己的分支,是不是的往dev分支上合并就可以了。

bug分支:

假如這種情況,你正在dev分支下寫代碼,但還沒寫完,又不能提交,而此時接到一個緊急處理bug的緊急任務(wù),且該人物來源于master分支??梢韵扔胓it stash將當前工作現(xiàn)場儲存起來。

bug解決完了,再回到dev分支,如何恢復(fù)現(xiàn)場?

1:git stash apply,恢復(fù)后,stash不刪除,需要調(diào)用git stash drop

2: git stash pop,恢復(fù)同時把stash內(nèi)容也刪除。

feature分支:

開發(fā)過程中,有無窮無盡的新功能添加進來,但你不希望一些實驗性質(zhì)的代碼把主分支搞亂了,所以,每添加一個新功能,最好新建一個feature分支,在上面開發(fā)。

git checkout -b feature

開發(fā)完成后,切回dev,準備合并

git checkout dev

但是!突然該功能要求取消,必須銷毀這個分支:

git branch -d feature,正常的話會提示銷毀失敗,因為還未合并,所以就來了下面的命令:

git branch -D feature,強制刪除一個分支

多人寫作:

察看遠程庫信息:

git remote

加-v可以察看更詳細的信息:

git remote -v

推送分支:

git push origin master

git push origin dev

你的小伙伴想在dev分支下開發(fā),就必須創(chuàng)建遠程origin的dev分支到本地:

git checkout -b dev origin/dev

多人寫作工作模式通常如下:

1、首先,試圖用git push origin branch-name推送自己的修改

2、如果推送失敗,則因為遠程分支比你的本地更新,需要先用git pull試圖合并

3、如果合并有沖突,則解決沖突,并在本地提交

4、沒有沖突或者解決沖突后,在用git push origin branch-name推送就能成功

5、如果git pull提示“no tracking infor...”,說明本地分支和遠程分支的鏈接關(guān)系沒有創(chuàng)建,用命令git branch --set-upstream branch-name origin/branch-name

標簽管理:

發(fā)布一個新版本時,通常大一個標簽。這個標簽唯一確定了打標簽時刻的版本。標簽也是版本庫的一個快照。

git tag xxx

察看所有標簽:

git tag

給歷史某次提交的commit id打標簽:

git tag vx.x xxxxxxx

創(chuàng)建帶說明的標簽:

git tag -a vx.x -m "tags shuoming" xxxxxxx

打錯了標簽,也可以刪除:

git tag -d Vx.x

推送某個標簽到遠程:

git push origin vx.x

一次性推送所有未推送的標簽到遠程:

git push origin --tags

刪除遠程標簽(需先刪除本地標簽):

git tag -d v0.9

git push origin :refs/tags/v0.9

讓git顯示顏色:

git config --global color.ui true

git可以忽略特殊文件,所有配置文件在:

https://github.com/github/gitignore

.gitignore文件本身也需要放到版本庫里

最后說說搭建git服務(wù)器:

1、ubuntu或debian及其,安裝git

sudo apt-get install git

2、創(chuàng)建一個git用戶,用來運行g(shù)it服務(wù)

sudo adduser git

3、創(chuàng)建證書登陸:

收集所有需要登陸的用戶的公匙,把所有公匙導(dǎo)入到home/git/.ssh/authorized_keys文件里,易行一個。

4、初始化git倉庫:

sudo git init --bare sample.git

5、把owner改為git:

sudo chown -R git:git sample.git

6、禁用shell登陸:編輯etc/passwd

git:x:1001:1001:,,,:/home/git:/bin/bash

改為

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,852評論 9 163
  • 對于一個新的包括submodule的項目調(diào)用以下命令即可 或者 配置 首先是配置帳號信息 ssh -T git@g...
    brownfeng閱讀 557評論 0 0
  • 其實很多教科書都是害人的,不僅書法一門。當然,害人的老師也很多。如果你到現(xiàn)在沒有遇到書法老師,那趕緊燒香感謝老天...
    醉雨之閱讀 2,142評論 1 2
  • 新常態(tài)下應(yīng)有新思路,當有新作為。日前,陜西出臺《陜西省黨政干部鼓勵激勵辦法(試行)》、《陜西省黨政干部容錯糾錯辦法...
    火藍筑夢閱讀 578評論 0 0
  • 最近無心工作,找了個幌子幾天沒去上班。一個人呆在家里,仿佛與外邊的一切劃清了界限。我沉醉于這樣的獨處,平時偽裝太久...
    名叫慧的姑娘閱讀 194評論 0 2

友情鏈接更多精彩內(nèi)容