Git其實很可愛(新手初學掙扎之路)
阿新 • • 發佈:2018-12-13
Git是世界上最先進的分散式版本控制系統(沒有之一),
新手學習它,廖雪峰的教程確實再合適不過:
[Git教程-廖雪峰的官方網站]
(https://www.liaoxuefeng.com/wiki/
0013739516305929606dd18361248578c67b8067c8c017b000)
然而,喜歡自虐找事的我還是遇到了不少小問題。它們是:
1.讓人煩躁的please make sure you have the correct
access rights and the repository exsits.
其實是SSH密匙的問題。
要解決,首先得註冊一個Github賬號。
然後有三件事要做:
㈠、在Git中輸入命令:$ ssh-keygen -t rsa -C " [email protected]"
(郵件地址當然要填自己的),
然後一路回車,之後就可以從電腦裡,直接在使用者目錄裡
找到.ssh資料夾,用word可以開啟id_rsa.pub這個檔案,複製全部內容。
㈡、登陸Github,進入Settings >> SSH and GPG keys >> New SSH key,
將上一步複製的內容貼上到Key下面的框裡,Title隨意,
然後點選Add SSH key就可以啦。
㈢、現在驗證下key是不是正常工作,在Git裡輸入
$ ssh -T [email protected],然後會跳出一堆話,
輸 yes ,如果看到Hi xxx! You've successfully authenticated,
but GitHub does not # provide shell access.就大功告成啦。
2.然後問題又來了,明明設定了SSH,怎麼再次push的時候就不可以。
這個時候重複進行一下上面的 ㈢ 就可以啦。
(每次都重新建立SSH的我實在太傻了)
順便一提,關於push,得先輸入:
git pull origin master 把遠端庫的檔案拉下來後,
再輸入: git push origin master ,其實很簡單。
3.當commit命令輸錯或其他命令要求確認時,會遇到
please enter the commit message for your changes,
這時就需要輸入解釋:
(1)按鍵盤字母i進入insert模式;
(2)修改最上面那行黃色合併資訊,可以不修改;
(3)按鍵盤esc鍵(就可以在最下面輸入了);
(4)輸入 “:wq” 注意不要掉冒號,再回車就可以啦。
問題暫時就是這麼多了,現在來說說心得。
確實,git的命令太多,但“既然Git是一個工具,
就沒必要把時間浪費在那些“高階”但幾乎永遠不會用到的命令上。”(----廖雪峰)
所以,我在這裡列舉出作為新手,必須理解、熟練、深愛(?)的常用命令,
附帶自己對它們的認識:
mkdir 資料夾名 //建立資料夾
★cd 資料夾名 //進入這個資料夾
pwd //顯示路徑(在電腦哪裡)
git init //倉庫初始化(變成受git控制)
★git add 檔名 //把修改新增到倉庫(stage中)
★git commit -m "此次修改" //把修改提交到倉庫(master或別的分支中)
git status //檢視倉庫的操作狀態
git diff //檢視修改內容
git log //檢視提交歷史(只想看commit id
就用git log --pretty=oneline)
git reflog //檢視命令歷史
git reset --hard HEAD^
git reset --hard HEAD~100 //回退版本
git reset --commit id
git checkout -- 檔名 //撤銷工作區的全部修改,包括刪除
git reset HEAD 檔名 //把暫緩區的修改回退到工作區
rm 檔名 //工作區刪除檔案
git rm 檔名 //暫緩區刪除檔案
git commit -m "remove 檔名" //版本庫中刪除檔案
cat 檔名 //檢視檔案內容
ls //檢視資料夾內容
ssh-keygen -t rsa -C " [email protected]" //建立SSH
ssh -T [email protected] //檢查SSH密匙是否正常工作
★git remote add origin 遠端倉庫地址 //關聯遠端倉庫
(origin可自改其他名稱)
★git remote -v //檢視遠端庫資訊
★git remote rm origin //取消關聯
★git clone 倉庫地址 //在本地克隆出一個一樣的遠端倉庫
★git push origin master //把本地master分支的最新修改推送到遠端庫
★git pull origin master //將遠端庫更新到本地的master分支