如下內容是學習,廖雪峯老師的git教程以後整理的筆記
一、建立repogit
二、編寫README.mdgithub
git can add or commit file1.txt file2.txtshell
git log #查看歷史記錄
git log --pretty=oneline #更好的查看日誌
git reset --hard HEAD^ #版本回退上一個版本
git reflog #查看命令歷史,以便知道要回退到哪一個版本
git reset --hard commit_id #在版本的歷史之間穿梭ubuntu
git status #查看狀態
git add 命令實際上就是把要提交的全部修改放到暫存區
git commit 能夠一次性把暫存區的全部修改提交到分支安全
git diff HEAD -- xxxx.txt #能夠查看到工做區和版本庫裏面最新版本的區別bash
git checkout -- file #能夠丟棄工做區的任何修改服務器
分支管理
git checkout -b dev #建立dev分支 切換到dev分支上
-b 參數表示 建立病切換:git branch dev and git checkout dev
git branch #查看當前分支
git checkout master #切換會master分支
git merge drv #將dev的分支合併到master分支
git branch -d dev #刪除dev分支
git log --graph #查看分支合併圖
git merge --no-ff -m "xxx" dev
--no-ff 參數,表示禁用fast forward 至關於在master分支上提交一個commitapp
處理bug分支
git stash #將當前工做現場儲藏起來
git stash list #查看儲藏的工做現場
git stash apply #恢復工做現場 可是恢復的stash內容並不刪除
git stash drop #刪除恢復的stash內容
git stash pop #刪除的同時將stash內容也刪除了ssh
刪除分支
git branch -d xxxx
-D 參數:強行刪除工具
多人協做
git remote #查看遠程庫的信息
-v 參數:顯示更詳細的信息
git push origin master or dev #選擇推送的分支
master 是主分支 dev 是團隊開發分支 這兩個須要同步到遠程
因爲克隆下來的只有master分支
git checkout -b dev origin/dev #建立遠程origin的dev分支到本地
git pull #把最新的提交從origin/dev 抓下來 在本地合併 解決衝突
git rebase #rebase操做能夠把本地未push的分叉提交歷史整理成直線;
rebase的目的是使得咱們在查看歷史提交的變化時更容易,由於分叉的提交須要三方對比
建立標籤
git tag v1.0 #給當前分支打上標籤
git tag #查看標籤
git tag v0.9 commit id #給commit id 打上標籤
git show
git tag -a v0.1 -m "version 0.1 released" commit id
-a 參數:指定標籤名 -m 指定說明文字
-d 參數:刪除標籤
git push prigin v1.0/--tags #推送一個標籤或者全部標籤
若是標籤已經推到遠程:
先將本地的標籤刪除:git tag -d v0.9
再遠程刪除:git push origin :refs/tags/v0.9
使用github 和 碼雲
兩個都是遠程代碼託管平臺
clone 別人的項目本身沒有push權限 須要先fork別人的項目 再push 再在github上面進行pull request
碼雲是國內版的github 國內鏈接網速快 與github的用法同樣
自定義git
自定義git更好的工做
git config --global user.name/email xxx/xxx@gmail.com
git config --global color.ui true #顯示顏色 命令輸出更加醒目
.gitignore #再.gitignore文件中能夠填入須要忽視提交的文件
git add -f xxx #強制提交
git check-ignore -v xxxx #檢查.gitignore是否寫得有問題
配置別名
git config --global alias.st status #告訴git 之後st 就表示 status
--global #s是全局變量 對本機全部倉庫起做用
配置文件在:.gitconfig
搭建git服務器 建議是ubuntu or debian系 sudo apt-get install git sudo adduser git #建立一個git用戶用來運行git服務 建立ssh登陸:收集全部用戶的公鑰 將全部的公鑰導入到/home/git/.ssh/authorized_keys 文件裏 選定一個目錄做爲git倉庫:假定是/srv/sample.git sudo git init --bare sample.git #建立一個裸倉庫 如今沒有工做區 sudo chown -R git:git sample.git #將owner改成git 其餘用戶不須要登陸服務器去修改工做區 出於安全考慮 建立的git用戶不容許登陸shell 修改/etc/passwd 文件 git: x:1001:1001:,,,:/home/git:/bin/bash 改成:git: x:1001:1001:,,,:/home/git:/usr/bin/git-shell git用戶能夠正常經過ssh使用git 可是沒法登陸shell git-shell 登陸shell 就退出 git clone xxx #經過clone遠程倉庫在各自的電腦上運行 Gitosis:批量管理公鑰 Gitolite:管理權限工具 不要把有限的生命浪費到權限鬥爭中