一 本地倉庫git
1 安裝gitgithub
sudo apt-get install git
2 安裝完成後進行設置網絡
git config --global user.name ' username ' git config --global user.email 'email'
3 建立版本庫。首先建立一個空目錄,而後把這個目錄變成git能夠管理的倉庫app
mkdir mygit cd mygit git init
使用ls -ah能夠查看該目錄下有一個.git文件ssh
4 添加文件readme.txt到倉庫,把文件提交到倉庫ui
git add readme.txt #添加文件 git add #修改文件後可直接使用git add將修改保存到暫存區 git commit -m 'wrote a readme.txt' #-m 後面是本次提交的說明,git commit只負責提交把暫存區的修改提交
git status #查看結果 git diff HEAD -- readme.txt #查看工做區和版本庫最新版的區別,顯示的是unix通用的diff格式 git log #查看提交歷史記錄 git log --pretty=oneline #簡版(一個提交一行)展現git log命令結果,等號左右兩邊不能有空格 git reflog #查看命令歷史記錄,這樣能夠找到已刪除的提交版本號
5 HEAD 表示當前版本,即最近一次提交unix
HEAD^ 上一個版本code
HEAD^ 上上一個版本server
HEAD~100 往上一個版本rem
git reset --hard HEAD^ #回退到上一個版本 git reset --hard 3628164 #數字是版本號的部分,命令表示回到版本號所對應的版本,版本號可由git log獲得
6 撤銷修改
命令git checkout -- readme.txt
意思就是,把readme.txt
文件在工做區的修改所有撤銷,這裏有兩種狀況:
一種是readme.txt
自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態;
一種是readme.txt
已經添加到暫存區後,又做了修改,如今,撤銷修改就回到添加到暫存區後的狀態。
總之,就是讓這個文件回到最近一次git commit
或git add
時的狀態。
git checkout -- file #撤銷的是add或commit後又作的修改,撤銷對工做區的修改 若是沒有 -- 這變成轉到另外一個分支的命令 git reset HEAD file #撤銷對暫存區的修改,讓已add的文件回到未add的狀態
7 刪除文件
直接在文件管理器中把文件刪了,或用rm命令刪了
rm test.txt
從版本庫中刪除
git rm test.txt git commit -m '...'
能夠從之前的版本庫裏恢復文件
git checkout -test.txt
二 遠程倉庫
1 在用戶主目錄下建立SSH Key,並在github中account settings 的SSH keys頁面把建立的.ssh/id_rsa.pub文件的內容複製到ADD SSH Key裏,title任意
ssh -keygen -t rsa -C 'email'
2 添加遠程庫
git remote add origin git@server-name:path/repo-name.git
3 把本地庫的內容推送到遠程庫上
git push -u origin master #第一次推送 git push origin master #之後推送
4 從遠程庫中克隆
git clone git@server-name:path/repo-name.git
5 建立與合併分支
建立並切換到分支dev
git checkout -b dev #至關於 git branch dev git checkout dev ############## git branch #查看當前分支 git merge dev #合併分支 git branch -d dev #刪除分支 git log --graph --pretty=oneline --abbrev-commit #查看分支狀況 git log --graph #查看分支圖
Fast forward模式,刪除分支後會去掉分支信息,禁用Fast forward:
git merge --no-ff -m '....' dev
6 Bug分支
git stash #保存現場 git stash list #查看保存的現場 git stash pop #恢復現場 至關於: git stash apply git stash drop ##################### git branch -D <branch-namde> #丟棄沒有合併的分支
7 查看遠程庫信息
git remote git remote -v #顯示更詳細信息 git pull #抓取最新的提交
8 將本地分支dev與遠程origin/dev分支連接,這裏建立的是跟蹤分支。另外還有遠程跟蹤分支,
遠程跟蹤分支是遠程分支狀態的引用。 它們是你不能移動的本地引用,當你作任何網絡通訊操做時,它們會自動移動。 遠程跟蹤分支像是你上次鏈接到遠程倉庫時,那些分支所處狀態的書籤。
它們以 (remote)/(branch)
形式命名。
git branch --set-upstream dev origin/dev
9 在本地建立與遠程分支對應的分支
git checkout -b branch-name origin/branch-name
10 標籤
git tag <name> #打標籤 git tag #查看標籤 git tag <name> <commit-id> #給之前的版本打標籤 git show <tagname> #查看標籤信息 git tag -a <tag-name> -m '....' #建立帶說明的標籤 -a 指定簽名 -m 指定說明文字 git tag -s <tag-name> -m '....' #建立帶PGP簽名標籤 git tag -d <tag-name> #刪除標籤 git push origin <tag-name> #推送標籤到遠程 git push origin --tags #一次性推送所有未推送到遠程的標籤 ###刪除已經推送到遠程的標籤 : #1 先從本地刪除 git tag -d <tag-name> #2 從遠程刪除 git push origin :refs/tags/<tagname>
11 其餘配置
git config --global color.ui true #配置顏色 .gitignore #忽略文件