1.git安裝:git
2.建立版本庫github
2.1 建立一個目錄sql
2.2 在該目錄下git init建立倉庫shell
3.添加/修改並提交內容緩存
git add xxruby
git commit -m "comment"bash
3.查看命令服務器
git statusssh
git diff xxui
git log (查看版本變化)
若是log太多,則用git log --pretty=online
4.版本回退
HEAD表示當前版本,^表示HEAD前一個版本,有兩種方式回退版本:
git reset --hard HEAD ^ (回退到當前版本以前的版本)
git reset --hard CommitID
git reflog查看命令歷史
5. 概念
工做區:目錄
版本庫:工做區裏的隱藏目錄.git包含:stage或者index的暫存區;master分支;指向master的一個指針HEAD。
git add是將內容放入stage,git commit是將stage的數據提交到倉庫中。
工做區、暫存區、倉庫。add把工做區的變動同步到暫存區,commit把暫存區的變動同步到倉庫。
git reset HEAD file:把暫存區的修改撤銷掉,從新放回工做區
總結: git diff -----工做區和暫存區比較
git diff HEAD -----工做區和分支比較
6.撤銷修改
git checkout -- xx (將分支上的xx同步到本地,至關於完成了撤銷修改,無論此時修改是在工做去或者緩存區)
git reset HEAD <file> 是將暫存區裏的內容回退到分支同版本,此時工做區的內容不變,和checkout有區別。因此,reset有兩個功能:能夠回退版本,也能夠清空暫存區。
7.刪除
git rm xx
git commit
實戰篇:使用github管理本身的創庫
第1步:建立SSH Key。在用戶主目錄下,看看有沒有.ssh目錄,若是有,再看看這個目錄下有沒有id_rsa
和id_rsa.pub
這兩個文件,若是已經有了,可直接跳到下一步。若是沒有,打開Shell(Windows下打開Git Bash),建立SSH Key:$ ssh-keygen -t rsa -C "youremail@example.com"
若是一切順利的話,能夠在用戶主目錄裏找到.ssh
目錄,裏面有id_rsa
和id_rsa.pub
兩個文件,這兩個就是SSH Key的祕鑰對,id_rsa
是私鑰,不能泄露出去,id_rsa.pub
是公鑰,能夠放心地告訴任何人。
第2步:登錄GitHub,打開「Account settings」,「SSH Keys」頁面:
而後,點「Add SSH Key」,填上任意Title,在Key文本框裏粘貼id_rsa.pub
文件的內容:
第3步:關聯git創庫:git remote add origin git@github.com:simkong/LearnGit.git
查看庫關聯: git remote -v
刪除關聯庫: git remote rm xx
分支管理:
1.建立分支 git branch dev
2.切換分支 git checkout dev
git switch -c dev
建立並切換分支 git checkout -b dev
3.查看分支 git branch
4.將分支merge到master: git merge dev
查看分支:git branch
建立分支:git branch <name>
切換分支:git checkout <name>
或者git switch <name>
建立+切換分支:git checkout -b <name>
或者git switch -c <name>
合併某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
5.刪除分支 git branch -d dev
6.查看log:git log --graph --pretty=oneline --abbrev-commit
7.
一般,合併分支時,若是可能,Git會用Fast forward
模式,但這種模式下,刪除分支後,會丟掉分支信息。
若是要強制禁用Fast forward
模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就能夠看出分支信息。
git merge --no-ff -m "xxx" branch
8.強制刪除分支: 當分支沒有merge的時候刪除分支會提示失敗,若是要強制銷燬則用-D
git branch -D xx
9.查看遠程分區: git remote
git remote -v (顯示信息更全)
10.推送分支 git push origin master (dev) 將本地分支推送到服務器主分支
11. 多人協做開發公用一個dev分支的時候,須要將本地的dev分支與遠程的origin的dev分支關聯:
git checkout -b dev origin/dev
=====================標籤管理===========
1.建立標籤 git tag XX
若是想在某制定地方打標籤,則先用git log --pretty=oneline --abbrev-commit 查看log id,而後在建立tag的時候,將該ID添加上去:
git tag XX ID
若是給標籤打上說明,則git tag -a VER -m "comment" ID
2.查看標籤 git tag
查看標籤信息 git show xx
3.標籤刪除:git tag -d XX
git show
4.推送本地標籤: git push origin tagname
推送所有本地未推送過的標籤:git push orgin --tags
刪除遠程標籤: 要先刪除本地標籤: git tag -d tagname
而後再刪除遠程標籤:git push orign :refs/tags/tagname
=============小技巧===============
1.配置顏色 : git config --global color.ui true
2.若是須要忽略某些文件好比臨時文件等,須要再工做區建立一個文件.gitignore,再該文件中添加須要過濾的文件或者文件夾
若是須要強制添加也給.gitignore屏蔽的文件,則用git add -f xx
3.配置別名 git config --global alias.CM1 command
這戲配置被放再.git/config裏
===============搭建git服務器===============
1.安裝git : sudo apt install git
2.建立git帳號: sudo adduser git
3.建立登錄證書: 將全部須要登錄的用戶的公鑰(id_rsa.pub)內容導入到/home/git/.ssh/authroized_keys文件,一行一個
4.初始化倉庫:好比/dir/xx.git,則咋/dir下面敲入命令: sudo git init --bare xx.git (沒有工做區的裸倉庫)
將owner改成git: sudo chown -R git:git xx.git
5.禁用ssh登錄: 修改/etc/passwd,將 git:x:1001:1001:,,,:/home/git:/bin/bash修改成git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
git log --graph --pretty=oneline --abbrev-commit