1.建空目錄 mkdir e:\gggit
2.把該目錄變成倉庫 git init //發現當前目錄下多了一個.gitgithub
3.新建文件readme.txtshell
4.添加文件到倉庫 git add readme.txt //添加到暫存區ubuntu
5.文件提交到倉庫 git commit -m "wrote a readme file" //後面是日誌,提交暫存區的內容windows
6.查看修改的內容 git diff readme.txtbash
7.查看歷史記錄 gig log (--pretty=oneline)//括號裏面的表示只顯示一行服務器
8.回退到歷史版本app
8.1 git reset --hard HEAD^ [head表示當前,head^回到上一個,head~`100 退100個版本]ssh
8.2 git reset --hard 3628164 【3628164 版本號,沒有必要寫全,寫五個就行】//若是屏幕沒有關掉svn
8.3 git reflog 【記錄每一次命令,能夠回退到任意版本】
[與svn區別] 三個回退到兩個版本,再查看是2個,svn是四個
9.撤消修改
9.1 沒有提交到暫存區 git checkout -- readme.txt
讓這個文件回到最近一次git commit或git add時的狀態
9.2 提交到暫存區,但沒有commit
git reset HEAD readme.txt
10.刪除文件
10.1 rm test.txt
11.添加遠程庫
11.1 關聯遠程庫 git remote add origin git@server-name:path/repo-name.git
11.2 第一次推送master分支的全部內容 git push -u origin master
11.3 之後推送最新修改 git push origin master
12.從遠程庫中克隆
12.1 git clone git@github.com:michaelliao/gitskills.git
【Git支持多種協議,包括https,但經過ssh支持的原生git協議速度最快。】
13 建立與合併分支
13.1 建立 dev分支,並切換到dev分支 git checkout -d dev
13.2查看當前分支 git branch //當前分支前面會標有*號
13.3 提交代碼到分支,
git add readme.txt
Git commit -m "test"
13.4 切換回master git checkout master
13.5 把分支的成果merge到master
Git merge dev //合併指定分支到當前分支
13.6 刪除dev分支 git branch -d dev
14.合併分支在刪除分支後,不丟失信息
14.1 git merge --no-ff -m "merge with no-ff" dev
//--no-ff參數,表示禁用Fast forward
15.bug分支
15.1 把工做現場儲藏起來,修完bug之後,再恢復
Git stash
15.2 eg在master分支上修復bug,切換到master分支,並建立bug分支
Git checkout master
Git checkout -b issue-101
15.3 修復完成後切換到master分支,合併,刪除bug分支
Git checkout master
Git merge --no-ff -m "merge bug fix 101 " issuse-101
Git branch -d issue-101
15.4 回到dev分支幹活
Git checkout dev
查看工做現場
Git stash list
恢復工做現場
1.git stash pop[恢復並刪除stash]
2.git stash apply 恢復
git stash drop 刪除
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
.py[cod]
*.so
*.egg
*.egg-info
Git config --global alias.st status
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
git:x:1001:1001:,,,:/home/git:/bin/bash
改成:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
git用戶能夠正常經過ssh使用git,但沒法登陸shell,由於咱們爲git用戶指定的git-shell每次一登陸就自動退出。