[github]git必會技能集合(入門與實踐)

1:配置我的信息

git config --global user.name "name"
git config --global user.email "xx@qq.com"

2:配置顯示信息

git config --global color.ui auto    #輸出顯示信息更易讀

3:建立和添加密鑰的方法

1:建立密鑰
ssh-keygen -t rsa  -b 4096 -C "397916230@qq.com"
而後會要求你輸入一個你能記住的密碼
產生的三個內容須要注意:
    1:   key fingerprint
    2:  .ssh/id_rsa文件      私有密鑰
    3:  .ssh/id_rsa.pub文件  公開密鑰

2: add to ssh-agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

3:向github中添加公開密鑰
在本身的github賬號中添加了公開密鑰以後,就能夠用私有密鑰進行認證了
在瀏覽器中登陸github賬號->setting->SSH and GPG keys->add key 
(title隨機取名,key的來源是id_rsa.pub文件中的內容,注意該文件的全部內容到複製到github中)

4:在shell中使用私人密鑰與github進行通訊
 ssh -T git@github.com 
#這時會彈出一個對話框,讓你輸入密碼,該密碼爲剛纔建立密鑰時輸入的密碼

4:經常使用小功能

watch: 關注某個項目的開發進展
following:關注某些程序員
follower:有哪些人關注你git

5:在命令行中向已經創建好的空repository中添加文件README.md

echo "# firt try to create repository using cmd line" >> README.md
git init
git add README.md  #添加文件到倉庫中
git commit -m "firt commit" #提交文件時,添加的commit內容
git remote add origin  https://github.com/huangtao00/First.git
git push -u origin master  #push到上first.git這個倉庫中 ,這一步要輸入用戶名,密碼

6:向倉庫中添加代碼的流程

#還有一個更簡單的方法,在瀏覽器中建立了倉庫後,直接到cmd下git clone 以前建立的倉庫便可 
#注意在瀏覽器中clone時必定選擇使用Clone with SSH,這樣只用輸入一次密碼,查看第3部分)
git clone git@github.com:huangtao00/CoolQrobot.git

git status  #查看一下當前本地建立的狀態 
#編寫要添加的程序源碼
#下面是添加源碼到倉庫中
git add hello.py
git commit -m "add hello.py to repository" #後面push到遠程repo時,會顯示的信息
git log  #能夠用來查看 你以前 在什麼時間 提交過 commit
git push  #這樣就把剛纔add and commit的文件和信息上傳到了遠程倉庫

#下次要加入新的文件,或是舊的文件須要改變後 上傳時,仍是進行以下操做
git add filename
git commit -m "message"
git push 

#若是本身改了不少文件,已經不記得哪些文件本身改過了,可使用下面命令
#查看修改過,可是尚未被push到遠程repo的文件
git status   #主要是用來顯示本地建立的當前狀態 

#若是當前目錄中存在沒有被添加到倉庫中的文件時,該文件稱爲untracked files
#經過 git add命令把文件添加到repo中,此時git status能夠看到 new file:

#若是git add以後,發現add的文件添加錯了,使用下面的命令從stage中去除掉
git rm --cached filename
#而後再 git status時,能夠發現文件又變成了 untracked files

#git commit的信息附到以前add的全部文件上
直接輸入git commit時,vim會被打開,讓你添加更加詳細的提交信息

#當你輸入git commit使用vim對以前add的文件添加了 提交信息後,後來又以爲這些commit信息寫的有問題,能夠用下面的命令回到沒到commit的狀態 
git reset HEAD hello.py

#git log 查看什麼人在什麼時間進行了commit的操做
git log --pretty=short  #對每一個commit,只顯示提交信息的第一行,方便觀察
git log  README.md  #只顯示與該文件有關的commit ,也可加目錄 
#記住 git log這個命令很是強大,有不少參數,由於開發人員常常要看一下,之前本身或團隊對工程裏的源碼作過哪些修改,須要慢慢掌握這個工具


#若是咱們改變了文件 可是沒有add,這時文件改變狀態 是在工做樹中保存的
#若是咱們把改變後的文件git add以後,這時,文件改變的狀態 就同步到了暫存區
#再使用git diff 就看不到區別了

#這裏有一點要注意的,文件在本地時,有兩個空間 工做樹空間,暫存區空間,
#工做樹空間-->add -->暫存區空間--->push -->遠程倉庫

git diff HEAD,能夠查看最近的一次文件作了哪些修改 ,就是在commit前,能夠用這個命令來看,文件所作的修改,若是項目很大時,這個命令頗有用的!!

#實際上咱們操做時,能夠把全部文件慢慢的add,commit了以後,
#而後一般 git log來看全部commit,
#最後須要上傳到遠程repo時,才調用push,不要一個文件發生改變後,立刻push,沒有必要
#文件改沒改變,能夠一般git status發現,而後git diff查看具體改變了什麼

#刪除遠程倉庫上文件的命令
git rm -f  file
git commit -m "delete file"
git push

#刪除暫存區空間上的文件
git rm --cached file

7:包含其它子repo的目錄添加失敗

git rm -r --cached some-directory
git commit -m "Remove the now ignored directory some-directory"
git push -u origin master

8:git免密提交

#不使用密鑰,只是將密碼cache到memory
# Set git to use the credential memory cache ,默認15分鐘後失效
git config --global credential.helper cache
# Set the cache to timeout after 1 hour (setting is in seconds)單位是秒
git config --global credential.helper 'cache --timeout=3600'

9:代碼追溯

git checkout <tag>
git log    #to get sha number used below
git reset --hard  <sha>
相關文章
相關標籤/搜索