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