国产免费观看青青草原网站_久久精品视频色悠悠_影音先锋激情5566_日本一區二區三區免費高清在線_麻豆精品一区综合av_丰满的大屁股一区二区_男女啪啪免费网站_草莓视频app在线观看下载_午夜寂寞少妇AA片_混乱的生物课月老师后续视频

 
您現(xiàn)在的位置:首頁(yè) ? 知識(shí)庫(kù) ? 軟件開(kāi)發(fā) 軟件開(kāi)發(fā)
Git進(jìn)階使用筆記
發(fā)布日期:2018-04-17

內(nèi)容導(dǎo)讀

一直以來(lái),Git的使用只停留在簡(jiǎn)單的操作上。但是這種方式Git會(huì)盡可能的使用 Fast forward 模式,這種情況下,刪除分支后,分支信息會(huì)一并刪除。tag標(biāo)簽即為給 commit 操作產(chǎn)生的id值取的別名。添加后,遠(yuǎn)程倉(cāng)庫(kù)的名字就叫做origin, Git的默認(rèn)叫法,也可以更改。/home/git/.ssh/authorized_keys 一行一個(gè)用戶,如果沒(méi)有該文件,手動(dòng)創(chuàng)建即可。當(dāng)前用戶的配置文件在home目錄的 .gitconfig ,可以直接修改文件。

一直以來(lái),Git的使用只停留在簡(jiǎn)單的操作上。要得心應(yīng)手的使用Git,必須了解點(diǎn)其他的東西。

配置個(gè)人信息

$ git config --global user.name "xxyangyoulin"$ git config --global user.email "xxyangyoulin@gmail.com"

查看提交日志

git log
git log --pretty=oneline #簡(jiǎn)略查看信息
git log --graph --pretty=oneline --abbrev-commit #查看分支信息

文件差別對(duì)比

git diff file
  1. git diff filepath

    工作區(qū)與暫存區(qū)比較

  2. git diff HEAD filepath

    工作區(qū)與HEAD ( 當(dāng)前工作分支) 比較

  3. git diff --staged 或 --cached filepath

    暫存區(qū)與HEAD比較

  4. git diff branchName filepath

    當(dāng)前分支的文件與branchName 分支的文件進(jìn)行比較

  5. git diff commitId filepath

    與某一次提交進(jìn)行比較

進(jìn)行版本穿梭

在Git中,用HEAD表示當(dāng)前版本,上一個(gè)版本就是HEAD^,上上一個(gè)版本就是HEAD^^,往上寫(xiě)成HEAD~100

回上一版

git reset --hard HEAD^

此時(shí)git log 發(fā)現(xiàn)當(dāng)前版本以后的版本消失。

想回到未來(lái)版本?未關(guān)閉窗口之前,找到版本號(hào):

git reset --hard <版本號(hào)>

版本的跳轉(zhuǎn),HEAD如同一個(gè)指針,跳轉(zhuǎn)不過(guò)是指針指向不同的版本。

HEAD指向哪個(gè)版本,當(dāng)前版本定位就在哪兒。

但是找不到版本號(hào)了?

git提供了查看你的每一次命令的命令:

git reflog

撤銷修改

git checkout -- changedFile

將會(huì)回到文件最后一次commit或者add時(shí)候的狀態(tài)。

已經(jīng)被你add了?

撤銷add

git reset HEAD file

這樣add的文件就被撤銷回到工作區(qū)了。

刪除文件

  1. 工作區(qū)刪除了文件并且確定也要?jiǎng)h除版本庫(kù)的該文件:

git rm hello.txtgit commit -m 'rm hello'
  1. 刪錯(cuò)了?

git checkout -- hello.txt

恢復(fù)到最新版本。

進(jìn)行分支管理

創(chuàng)建新的分支

git branch newbranch

切換到新分支

git checkout newbranch

創(chuàng)建并且切換

git checkout -b newbranch

查看當(dāng)前分支

git branch

合并指定分支

git merge otherbranch

合并發(fā)生沖突,手動(dòng)修改沖突文件并提交即可。

但是這種方式Git會(huì)盡可能的使用Fast forward模式,這種情況下,刪除分支后,分支信息會(huì)一并刪除。

禁用Fast forward模式?

git merge --no-ff otherbranch

--no-ff可以保留之前的分支歷史,能夠更好的查看歷史分支信息。而git merge只保留單條分支記錄。

gitmergenoff.png

刪除指定分支

git branch -d otherbranch

推薦的是:創(chuàng)建一個(gè)分支完成一個(gè)任務(wù),完成任務(wù)合并分支后刪除完成任務(wù)的分支。

但是提示沒(méi)有合并分支?

git branch -D otherbranch

強(qiáng)制刪除。

儲(chǔ)藏工作現(xiàn)場(chǎng)

工作途中,我們?cè)贏分支工作,當(dāng)前任務(wù)未完成,沒(méi)有添加到暫存區(qū),但是需要緊急修復(fù)bug,使用:

git stash

儲(chǔ)存現(xiàn)場(chǎng),然后切換到需要修復(fù)bug的分支B。

接著,創(chuàng)建修復(fù)bug的分支C,完成修復(fù)任務(wù),回到B分支,合并C分支,刪除C分支。

然后,回到我們正在工作的A分支:

git checkout A

查看我們的工作現(xiàn)場(chǎng):

git stash list

恢復(fù)工作現(xiàn)場(chǎng)?

git stash pop

此時(shí)會(huì)恢復(fù)并且刪除stash的內(nèi)容。

不刪除stash內(nèi)容?

git stash apply <指定stash,可以多次stash>

只執(zhí)行恢復(fù)操作。

但是以后想刪除?

git stash drop

執(zhí)行刪除stash內(nèi)容的操作。

查看遠(yuǎn)程分支

git remote
git remote -v

將會(huì)顯示更為詳細(xì)的信息。

分支多人協(xié)作

其他人從服務(wù)器clone你的項(xiàng)目的時(shí)候,他默認(rèn)只能在本地看到master分支,但是想切換其他分支進(jìn)行工作?

git checkout -b work1 orgin/work1

在本地創(chuàng)建和遠(yuǎn)程對(duì)應(yīng)的分支。

完成工作之后推送到服務(wù)器:

git push origin work1

此時(shí)其他人想要推送到work1就必須:

git pull

先拉取一下。

如果提示There is no tracking information for the current branch.

此時(shí)需要指定本地work1和遠(yuǎn)程work1分支的連接關(guān)系:

git branch --set-upstream work1 origin/work1

然后再執(zhí)行拉取操作。

拉取之后,可能會(huì)發(fā)生沖突,手動(dòng)解決即可。

tag標(biāo)簽的使用

tag標(biāo)簽即為給commit操作產(chǎn)生的id值取的別名。

git tag <-s> v1.0 <-m "tag explain"> <commit id>

commit id 為空將會(huì)對(duì)應(yīng)最新的commit。

-s秘鑰簽名標(biāo)簽。

-m標(biāo)簽說(shuō)明。

查看標(biāo)簽信息:

git taggit show v1.0

刪除標(biāo)簽:

git tag -d v1.0

推送標(biāo)簽:

git push origin v1.0

推送全部:

git push origin --tags

刪除推送了的標(biāo)簽:

git tag -d v1.0git push origin :refs/tags/v1.0

忽略文件

強(qiáng)制添加存在.gitignore的文件

git add -f file.class

使用遠(yuǎn)程倉(cāng)庫(kù)

關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù)

git remote add origin git@github.com:mnnyang/reponame.git

添加后,遠(yuǎn)程倉(cāng)庫(kù)的名字就叫做origin, Git的默認(rèn)叫法,也可以更改。

關(guān)聯(lián)之后,把本地的master分支所有內(nèi)容推動(dòng)到遠(yuǎn)程庫(kù)上:

git push -u origin master

-u參數(shù):

Git會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來(lái),以后的推送和拉取就可以簡(jiǎn)化命令。

搭建Git遠(yuǎn)程服務(wù)器

  1. 首先肯定是要安裝了Git才行啊。

  2. 創(chuàng)建一個(gè)專門(mén)用于運(yùn)行g(shù)it服務(wù)的用戶:

    sudo adduser git
  3. 把需要登錄的用戶的id_rea.pub添加到

    /home/git/.ssh/authorized_keys 一行一個(gè)用戶,如果沒(méi)有該文件,手動(dòng)創(chuàng)建即可。

  4. 選擇一個(gè)目錄作為倉(cāng)庫(kù),在該目錄下:

    sudo git init --bare sample.git

  5. 把倉(cāng)庫(kù)擁有者改為git用戶:

    sudo chown -R git:git sample.git
  6. 禁止shell登錄,修改/etc/passwd

    git:......:/home/git:/usr/bin/git-shell
  7. 本地克隆使用了:

    git clone git@serverip:/srv/sample.git

GitHub

生成key

ssh-keygen -t rsa

測(cè)試連接

ssh -T git@github.com

刪除已關(guān)聯(lián)的遠(yuǎn)程庫(kù)

git remote rm origin

可以關(guān)聯(lián)多個(gè)遠(yuǎn)程庫(kù)

修改默認(rèn)的遠(yuǎn)程庫(kù)名稱origin即可。

自定義配置

命令別名

git config --global alias.st statusgit config --global alias.cm commitgit config --global alias.br branchgit config --global alias.ma 'push origin master'git config --global alias.unstage 'reset HEAD'git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

--global是針對(duì)當(dāng)前用戶起作用。不加則只針對(duì)當(dāng)前工作目錄。

配置文件在.git/config文件中。當(dāng)前用戶的配置文件在home目錄的.gitconfig,可以直接修改文件。

  • 去官方網(wǎng)站學(xué)習(xí)更多:

     

git-scm

  • 1.公司登記注冊(cè)于2003年1月27日,清遠(yuǎn)市桑達(dá)電子網(wǎng)絡(luò)媒體有限公司
    2.公司2006年起成為清遠(yuǎn)市政府定點(diǎn)協(xié)議供貨商,電子采購(gòu)供貨商
    3.公司2007年被清遠(yuǎn)市相關(guān)政府部門(mén)評(píng)為安防行業(yè)狀元
    4.公司2007年起成為長(zhǎng)城電腦清遠(yuǎn)如意服務(wù)站(SP368)
    5.公司2007年承建清遠(yuǎn)市橫河路口電子警察工程,開(kāi)創(chuàng)清遠(yuǎn)電子警察先河。
  • 6.公司2007年起成為IBM合作伙伴、公司2010年底成為金蝶軟件清遠(yuǎn)金牌代理(伙伴編號(hào):30030013)
    7.公司組團(tuán)隊(duì)參加南方都市報(bào)組織的創(chuàng)富評(píng)選,獲廣東80強(qiáng)。公司申請(qǐng)多項(xiàng)軟件著作權(quán)、專利權(quán)
    8.2016年起公司成為粵東西北地區(qū)為數(shù)不多的雙軟企業(yè),確立“讓軟件驅(qū)動(dòng)世界,讓智能改變生活!"企業(yè)理想
    9.2016-01-29更名為廣東互動(dòng)電子網(wǎng)絡(luò)媒體有限公司
    10.2021-01-13更名為廣東互動(dòng)電子有限公司
  • 投資合作咨詢熱線電話:0763-3391888 3323588
  • 做一個(gè)負(fù)責(zé)任的百年企業(yè)! 天行健,君子以自強(qiáng)不息;地勢(shì)坤,君子以厚德載物;
    為用戶創(chuàng)造價(jià)值! 讓軟件驅(qū)動(dòng)世界; 讓智能改變生活; 超越顧客期望,幫助顧客成功;
    對(duì)客戶負(fù)責(zé),對(duì)員工負(fù)責(zé),對(duì)企業(yè)命運(yùn)負(fù)責(zé)!幫助支持公司的客戶成功;幫助忠誠(chéng)于公司的員工成功!
  • 聯(lián)系電話:0763-3391888 3323588 3318977
    服務(wù)熱線:18023314222 QQ:529623964
  • 工作QQ:2501204690 商務(wù)QQ: 602045550
    投資及業(yè)務(wù)投訴QQ: 529623964
    微信:小米哥 微信號(hào):qysed3391888
    騰訊微博:桑達(dá)網(wǎng)絡(luò)-基石與起點(diǎn)
  • E-MAIL:222#QYSED.CN ok3391888#163.com (請(qǐng)用@替換#)
在線客服
  • 系統(tǒng)集成咨詢
    點(diǎn)擊這里給我發(fā)消息
  • 網(wǎng)站\微信\軟件咨詢
    點(diǎn)擊這里給我發(fā)消息
  • 售后服務(wù)
    點(diǎn)擊這里給我發(fā)消息
  • 投資合作
    點(diǎn)擊這里給我發(fā)消息