linux下git的简单运用
linux下git的簡(jiǎn)單運(yùn)用
windows下也有g(shù)it,是git公司出的bash,基本上模擬了linux下命令行。許多常用的命令和linux下操作一樣。也就是說,windows下的git命令操作和linux是完全一樣的。windows環(huán)境下而且還有GUI的軟件,這就更加方便操作git了,因此如果你真是“大懶蛋”的話,使用windows下的圖形操作,那也是非常方便的。
小跑題一下:
周圍很多人,學(xué)習(xí)有一個(gè)非常大的誤區(qū)。以為有了良好的學(xué)習(xí)資料,就能學(xué)的很好。以為只要把所有的東西一開始就掌握,就能無往不利,以為只要認(rèn)真的看視頻看文檔,就能將這些命令牢記于心。其實(shí)這是非常不靠譜的思想,稍微開發(fā)過軟件的朋友都知道,一個(gè)軟件開發(fā)的初期,會(huì)先列出主要的功能。20%的主要功能占用平時(shí)使用的80%以上,而剩下百分之80%的功能,使用的人數(shù)只有20%。那么我們學(xué)習(xí)的時(shí)候不要眉毛胡子一把抓,要分清主次。先學(xué)自己目前能夠用到的,目前思維和知識(shí)結(jié)構(gòu)能夠接受的就行。
好高騖遠(yuǎn),貪婪無度最終只會(huì)導(dǎo)致所學(xué)的技術(shù)只是紙上談兵的紙老虎,根本不能走進(jìn)生產(chǎn)工作領(lǐng)域。
因此,踏踏實(shí)實(shí)的去學(xué),不好高騖遠(yuǎn),不貪多求全是非常重要的。
?
git的簡(jiǎn)介,我就不介紹了。
下面是我學(xué)習(xí)中一些常用的功能,以備自己腦袋短路的使用查看。
我的git是用yum的簡(jiǎn)便方式安裝的。
生成的配置文件是在 ~/.ssh里面,.ssh是個(gè)隱藏文件。里面保存有本臺(tái)電腦的公鑰和私玥。公鑰復(fù)制給github上面的ssh驗(yàn)證,以后只要自己保留有私鑰就能和遠(yuǎn)程的github進(jìn)行文件同步了。
我的git的工作目錄是在 /usr/local/apache/htdoc/下面
我再下面新建了一個(gè)文件,mkdir project
然后cd project文件夾內(nèi),并將這個(gè)文件變成git的倉庫 git init
然后ls –al 查看project文件夾下是否有 .git的隱藏文件。這個(gè)文件就是git庫文件。
然后進(jìn)行g(shù)it的全局設(shè)定。
git config --global user.name “roverliang”
git config --global user.email mr.roverliang@gmail.com
當(dāng)然也可在每個(gè)庫里面為自己的庫指定用戶名,命令和上面的差不多,--global(全局)去掉即可。
生成git的密鑰對(duì)。
ssh-keygen -t rsa -C 'mr.roverliang@gmail.com' ?
ssh-keygen是ssh非對(duì)稱加密。
-t是type的意思。用那種方式加密。
這個(gè)rsa 是非對(duì)稱加密。關(guān)于這個(gè)rsa加密的我能理解,但是讓我講我講不通。相關(guān)資料介紹放這里,感興趣的朋友看下:http://snowolf.iteye.com/blog/381767
然后查看 cat ~/.ssh/id_rsa.pub ?
.ssh是一個(gè)隱藏的文件。直接查看是看不到的,要用到ls -al的命令。
id_rsa.pub就是剛才我們生成的密鑰中的公玥。復(fù)制下,放到github就能實(shí)現(xiàn)本地與git的互通了。
?
git有三個(gè)分區(qū),
1、工作區(qū)
2、準(zhǔn)備提交區(qū)
3、主版本區(qū)。
當(dāng)我們新建一個(gè)文件的時(shí)候。touch roverliang.txt
我們可以使用git status 查看當(dāng)前工作區(qū)的狀態(tài)。
git會(huì)有提示:
(use "git add <file>..." to include in what will be committed)
說你可以通過git add 加上文件名 將這個(gè)文件提交?
我們可以把這個(gè)文件添加到準(zhǔn)備提交區(qū)。 git add? roverliang.txt
然后我們?cè)賮砜磄it status 的狀態(tài)。
(use "git reset HEAD <file>..." to unstage)
git告訴我們,現(xiàn)在你可以使用 git reset HEAD 加上你的文件名的方式,將剛才提交的文件回復(fù)到未提交的狀態(tài),也就是回退。
我們可以通過git commit –m “這里寫你對(duì)文件的修改信息”
這樣我們將一個(gè)文件成功提交到版本控制區(qū),也就是master區(qū)。
這個(gè)時(shí)候我們繼續(xù)編輯我們的roverliang.txt文件vim roverliang.txt
在里面寫上一句話:roverliang是個(gè)大壞蛋。
然后保存。這個(gè)時(shí)候我們可以用git diff命令來比對(duì)我們工作區(qū)新修改的這個(gè)文件和我們的master區(qū)(主版本區(qū))的那個(gè)roverliang有什么區(qū)別。
如果修改了。會(huì)用++來表示,非常清晰。
如果你近期提交了很多的文件,想知道自己提交了那些文件,那么我們可以用
git log的命令來查看自己的提交日志。
如果日志太長(zhǎng),我們可以使用鍵盤的j鍵來向下翻,使用k鍵來向上翻。如果不想看了,也可以使用q鍵來退出。
如果你只想看到簡(jiǎn)明清晰漂亮的日志信息,也可以用一個(gè)非常漂亮的命令來查看。
git log --pretty=oneline的命令來呈現(xiàn)。那么你的日志信息就會(huì)呈現(xiàn)如下的格式。
pretty英語意思是漂亮的
dc21f60b64db2c4f7b7dbdbed4ade5f15e78e79b 我是roverliang
d4f773a7ea120d763551b389e3441c030126c062 jj
794cc78900b456987d49280c3ce6b5f02a3cbba4 nol
1c7c6a2c6bb09c816e1c85ed8481a6ba2be213e0 Create 我想做個(gè)事.text
前面一長(zhǎng)串的編碼是你文件的唯一編碼,在多人合作開發(fā)的環(huán)境下,也是區(qū)分文件修改者信息的重要依據(jù)。
如果我們覺得主版本需要回退到添加上個(gè)文件之前的狀態(tài)。
那我們可以使用 git reset --hard HEAD^
hard 有登陸處,硬沙灘的意思,意思就是徹底將這個(gè)版本回退到工作區(qū)。
有硬著陸,就有軟著陸。git reset –soft HEAD^ 回復(fù)到系統(tǒng)暫存區(qū)。
通過git reflog?? re 回退 f 文件 log 日志。reflog版本跳躍日志
通過git diff HEAD – 文件名。比對(duì)修改信息。
?
上面都是一些很基礎(chǔ)的應(yīng)用。
我們可以再github網(wǎng)上上新建一個(gè)庫房,名字比如就叫 ?LiangziTest
然后在我們的庫房里面把git上面的庫房,作為我們提交的庫房。
我們本地的庫房名字叫roverliangTest.
然后我們切入roverliangTest這個(gè)目錄里。執(zhí)行g(shù)it init初始化git.
然后把遠(yuǎn)程的庫房加進(jìn)來。?git remote add origin git@github.com:roverliang/LiangziTest.git
remote是遠(yuǎn)程的操作的意思。
origin是源的意思。
git remote add origin git@github.com:roverliang/LiangziTest.git
整條命令的意思就是通過git 遠(yuǎn)程(remote) 添加(add) 一個(gè)源(origin) 通過git的加密傳送方式(git) 位置在?github.com:roverliang/LiangziTest.git
這樣子我們就把遠(yuǎn)程的庫和本地的庫連接在一起了。
使用的過程中,由于可能新建一些測(cè)試文件。這些文件提交到服務(wù)器之后,測(cè)試執(zhí)行后,就不需要這些文件了。
可是使用git add 命令,git commit ?-m '添加刪除文件' git push origin master 并沒有 將遠(yuǎn)程的文件刪除。
git pull
查找資料后,發(fā)現(xiàn)。git add 是git add 只將新建的或者已更改的文件添加到索引區(qū)。(不會(huì)添加刪除的文件)
可以使用 git ? add -u 命令,然后再執(zhí)行。
?
?
git的錯(cuò)誤處理:
1、http request failed報(bào)錯(cuò)。
git push origin git@github.com:roverliang/butterfly.git
error: Couldn't resolve host 'github.com' while accessing https://github.com/roverliang/butterfly/info/refs
fatal: HTTP request failed
? ? ?處理辦法:復(fù)制github 上的ssh地址,替換掉當(dāng)前目錄里./.ssh/config 里面的remote url
? ??
?
?使用git已經(jīng)一段時(shí)間了,用的是linux下的命令行。雖然windows下也有更強(qiáng)大的gui版本,但是我還是鐘愛簡(jiǎn)單樸實(shí)的命令行。
?正確使用忽略列表
?
轉(zhuǎn)載于:https://www.cnblogs.com/roverliang/p/4751338.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的linux下git的简单运用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wcf 远程终结点已终止该序列 可靠会话
- 下一篇: [C#] 等待启动的进程执行完毕