您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Git中常見(jiàn)的操作有哪些的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
在實(shí)際開發(fā)中我們會(huì)遇到一些問(wèn)題,電腦藍(lán)屏,代碼丟了,懊悔不?磁盤壞了,文件沒(méi)了,懊悔不?時(shí)間長(zhǎng)了,文件找不到了,懊悔不?手欠,之前代碼運(yùn)行好好的,非要去優(yōu)化下,結(jié)果還不如以前,信心滿滿,之前代碼沒(méi)保存,懊悔不?怎么解決呢?版本控制就可以解決這些難題了。
版本控制(Version Control System),它功能強(qiáng)大,不僅能備份你的文件,還可以實(shí)現(xiàn)很多:
記錄文件的所有歷史變化
錯(cuò)誤恢復(fù)到某個(gè)歷史版本
多人協(xié)作開發(fā)編輯同一個(gè)文件
實(shí)現(xiàn)功能差異版本(分支),如:mysql、mariadb、percona三個(gè)分支
名稱 | 模型 | 并發(fā)** 模式 ** | ** 歷史 **模式 | 變更** 范圍 ** | ** 網(wǎng)絡(luò)協(xié)議 ** | ** 原子 **提交性 |
---|---|---|---|---|---|---|
CVS | Client-server | Merge | Changeset | File | Pserver,ssh | No |
SVN | Client-server | 3-way merge, recursive merge, octopus merge | Changeset and Snapshot | Tree | custom (svn), custom (svn) over ssh, HTTP and SSL (usingWebDAV) | Yes |
Git | Distributed | Merge or lock | Snapshot | Tree | custom, custom over ssh, rsync, HTTP/HTTPS, email, bundles | Yes |
簡(jiǎn)而言之,各有優(yōu)缺點(diǎn),git要配合github遠(yuǎn)程倉(cāng)庫(kù),可以避免分布式損壞。顯然最大的不同在于git是分布式的。svn有權(quán)限控制,避免全被clone克隆走。git適合純代碼,svn適合綜合性文檔管理,git+svn結(jié)合起來(lái),完美。
Linus在1991年創(chuàng)建了開源的Linux,從此,Linux系統(tǒng)不斷發(fā)展,已經(jīng)成為最大的服務(wù)器系統(tǒng)軟件了。Linus雖然創(chuàng)建了Linux的核心,但Linux的壯大是靠全世界熱心的志愿者參與的,這么多人在世界各地為L(zhǎng)inux編寫代碼,那Linux的代碼是如何管理的呢?
事實(shí)是,在2002年以前,世界各地的志愿者把源代碼文件通過(guò)diff的方式發(fā)給Linus,然后由Linus本人通過(guò)手工方式合并代碼!你也許會(huì)想,為什么Linus不把Linux代碼放到版本控制系統(tǒng)里呢?不是有CVS、SVN這些免費(fèi)的版本控制系統(tǒng)嗎?因?yàn)長(zhǎng)inus堅(jiān)定地反對(duì)CVS和SVN,這些集中式的版本控制系統(tǒng)不但速度慢,而且必須聯(lián)網(wǎng)才能使用。有一些商用的版本控制系統(tǒng),雖然比CVS、SVN好用,但那是付費(fèi)的,和Linux的開源精神不符。不過(guò),到了2002年,Linux系統(tǒng)已經(jīng)發(fā)展了十年了,代碼庫(kù)之大讓Linus很難繼續(xù)通過(guò)手工方式管理了,社區(qū)的弟兄們也對(duì)這種方式表達(dá)了強(qiáng)烈不滿,于是Linus選擇了一個(gè)商業(yè)的版本控制系統(tǒng)BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神,授權(quán)Linux社區(qū)免費(fèi)使用這個(gè)版本控制系統(tǒng)。
安定團(tuán)結(jié)的大好局面在2005年就被打破了,原因是Linux社區(qū)牛人聚集,不免沾染了一些梁山好漢的江湖習(xí)氣。開發(fā)Samba的Andrew試圖破解BitKeeper的協(xié)議(這么干的其實(shí)也不只他一個(gè)),被BitMover公司發(fā)現(xiàn)了(監(jiān)控工作做得不錯(cuò)?。?,于是BitMover公司怒了,要收回Linux社區(qū)的免費(fèi)使用權(quán)。Linus可以向BitMover公司道個(gè)歉,保證以后嚴(yán)格管教弟兄們,嗯,這是不可能的。實(shí)際情況是這樣的:Linus花了兩周時(shí)間自己用C寫了一個(gè)分布式版本控制系統(tǒng),這就是Git!一個(gè)月之內(nèi),Linux系統(tǒng)的源碼已經(jīng)由Git管理了!牛是怎么定義的呢?吃瓜群眾可以體會(huì)一下。
Git迅速成為最流行的分布式版本控制系統(tǒng),尤其是2008年,GitHub網(wǎng)站上線了,它為開源項(xiàng)目免費(fèi)提供Git存儲(chǔ),無(wú)數(shù)開源項(xiàng)目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。歷史就是這么偶然,如果不是當(dāng)年BitMover公司威脅Linux社區(qū),可能現(xiàn)在我們就沒(méi)有免費(fèi)而超級(jí)好用的Git了。
工作空間:用來(lái)保存項(xiàng)目的元數(shù)據(jù)和對(duì)象數(shù)據(jù)庫(kù)的地方。 這是 Git 中最重要的部分,從其它計(jì)算機(jī)克隆倉(cāng)庫(kù)時(shí),拷貝的就是這里的數(shù)據(jù)。
本地索引:保存了下次將提交的文件列表信息,一般在 Git 倉(cāng)庫(kù)目錄中。有時(shí)候也被稱作"索引",不過(guò)一般說(shuō)法還是叫暫存區(qū)域。
本地倉(cāng)庫(kù),之所以說(shuō)git 快,大部分提交都是對(duì)本地倉(cāng)庫(kù)而言的,不依賴網(wǎng)絡(luò),最后一次會(huì)推送的到遠(yuǎn)程倉(cāng)庫(kù)。
遠(yuǎn)程倉(cāng)庫(kù):可以看做是github,它是一個(gè)遠(yuǎn)程倉(cāng)庫(kù),它提供web服務(wù)供大家方便下載、查看、提交、存儲(chǔ)。
克隆倉(cāng)庫(kù)(第一次時(shí)) clone 克隆
對(duì)工作目錄中文件新增、修改、刪除操作
暫存文件,將文件的快照放入暫存區(qū) add 新增
把暫存區(qū)的內(nèi)容提交到本地倉(cāng)庫(kù) commit 提交
把本地倉(cāng)庫(kù)的內(nèi)容提交到遠(yuǎn)程倉(cāng)庫(kù) push 推送
從遠(yuǎn)程倉(cāng)庫(kù)下載最新內(nèi)容 pull 拉取
每個(gè)人必須有自己的賬號(hào),先官網(wǎng)注冊(cè)賬號(hào):
https://gitee.com/
Git-2.27.0-64-bit,一路next,安裝完桌面右鍵菜單有下面兩項(xiàng),安裝完成。選擇Git Bash,進(jìn)入git客戶端。
Windows開始菜單:
創(chuàng)建測(cè)試文件, 并在本地倉(cāng)庫(kù)執(zhí)行以下命令:
git config --global user.name "cgblpx" #配置注冊(cè)時(shí)的用戶名 git config --global user.email "2250432165@qq.com" #配置注冊(cè)時(shí)的郵箱 git config --list #檢查配置信息 mkdir j2ee cd j2ee git init #初始化 在本地倉(cāng)庫(kù)中,創(chuàng)建文件1.txt git add 1.txt #新增文件到git中處理 git commit -m "first commit" #提交,設(shè)置說(shuō)明信息 git remote add origin https://gitee.com/nutony/j2ee.git #遠(yuǎn)程倉(cāng)庫(kù) git push -u origin master #把本地倉(cāng)庫(kù)的資源 提交給Git服務(wù)器
第一次執(zhí)行會(huì)彈出下面的用戶名、密碼框,填寫碼云的賬號(hào)信息就可以
刷新頁(yè)面,如果創(chuàng)建成功,Git上界面發(fā)生變化如下樣子,這樣環(huán)境就完成了
每日早上開始工作前拉取最新團(tuán)隊(duì)其他人提交的內(nèi)容,每日下班前提交可用的內(nèi)容
創(chuàng)建項(xiàng)目目錄,創(chuàng)建新文件,或者復(fù)制已有文件或者復(fù)制已有目錄:
把本地文件上傳到遠(yuǎn)程倉(cāng)庫(kù)中:
$ git add . #添加當(dāng)前目錄下文件 $ git commit -m "j2ee part" #提交,設(shè)置備注 $ git push -u origin master #推送到遠(yuǎn)程倉(cāng)庫(kù)
把遠(yuǎn)程倉(cāng)庫(kù)中的內(nèi)容下載到本地:
$ git pull #從服務(wù)器拉取最新內(nèi)容
任何路徑下輸入都可以:
git config --system --unset credential.helper
然后提交操作時(shí),會(huì)出現(xiàn)詢問(wèn)框,重新輸入用戶名提示
這是是因?yàn)閞eadme.md 沒(méi)有存在在本地git中
git pull --rebase origin master #
$ git push -u origin master #推送到遠(yuǎn)程倉(cāng)庫(kù)
–rebase用在合并代碼的時(shí)候其作用就是在一個(gè)隨機(jī)創(chuàng)建的分支上處理沖突,避免了直接污染原來(lái)的分區(qū)。
1、先輸入$ git remote rm origin(刪除關(guān)聯(lián)的origin的遠(yuǎn)程庫(kù))
2、再輸入重新執(zhí)行 git push -u origin master
3、如果輸入第1步 還是報(bào)錯(cuò)的話,error: Could not remove config section 'remote.origin'. 我們需要修改gitconfig文件的內(nèi)容
4、找到你的github的安裝路徑,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc
5、找到一個(gè)名為gitconfig的文件,打開它把里面的[remote "origin"]那一行刪掉就好了!
--執(zhí)行命令解決: git config --global http.sslVerify false --重新push: git push -u origin master
需要在碼云上,把郵箱改成公開的才行
在網(wǎng)頁(yè)中創(chuàng)建倉(cāng)庫(kù)名稱:cgb2109-3
進(jìn)入workspace,再進(jìn)入你的項(xiàng)目目錄,直接執(zhí)行clone命令:
git clone https://gitee.com/cgblpx/cgb2109-3.git 也許: 需用執(zhí)行其他的賬號(hào)密碼等命令
感謝各位的閱讀!關(guān)于“Git中常見(jiàn)的操作有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。