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