#經常使用命令 看這個:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html?bsh_bid=5983510 #-------------------- #初始化,增長版本庫 git init #或者直接遠程克隆 git clone http:// #-------------------- #加入文件 git add -A #或者--all增長全部,適用第一次初始化,,Git2.0起,all是git add的默認參數,可用git add .代替 git add . #增長新增和修改的,排除刪除的 git add -u #增長更新和刪除的,排除新增的 git add -i #查看全部修改過或已刪除文件但沒有提交的文件 git add -h #其餘參數能夠用這個命令查看 #-------------------- #commit提交到倉庫 git commit -m "" #快捷命令能夠寫成 git ci -m 須要系統設置 #查看commit提交記錄 git log --pretty=oneline git log --graph --pretty=oneline --abbrev-commit # 修改上一次的commit git commit --amend #會彈出一個vi修改界面,在最上面修改保存便可 #-------------------- #拉取和提交到遠程倉庫 # 下載遠程倉庫的全部變更 $ git fetch [remote] # 顯示全部遠程倉庫 $ git remote -v # 顯示某個遠程倉庫的信息 $ git remote show [remote] # 增長一個新的遠程倉庫,並命名 $ git remote add [shortname] [url] # 取回遠程倉庫的變化,並與本地分支合併 $ git pull [remote] [branch] # 上傳本地指定分支到遠程倉庫 $ git push [remote] [branch] # 強行推送當前分支到遠程倉庫,即便有衝突 $ git push [remote] --force # 推送全部分支到遠程倉庫 $ git push [remote] --all
阮一峯和廖雪峯雙峯大神教程可解決Git全部基礎問題:html
Git基礎:git
廖雪峯Git教程github
阮一峯經常使用Git命令清單bash
Git進階服務器
阮一峯Git使用規範流程ide
阮一峯Git分支管理策略fetch
帶'(撇號)和其餘的commit實際上仍是存在兩個分支上,只是以線性顯示出來。
撤銷全部修改和新增:
# 若是還未add到暫存區 git checkout -- . git clean -xdf # 若是已經add到暫存區 git reset --hard git clean -xdf # git clean -xdf #意思是清理全部未跟蹤文件,也就是新增的未add的文件,注意忽略文件也會被刪除,危險
查看commit記錄
git log --pretty=oneline git log --graph --pretty=oneline --abbrev-commit
修改歷史commit
# 修改上一次的commit git commit --amend #會彈出一個vi修改界面,在最上面修改保存便可 #修改屢次歷史commit,說實話,能搞,可是太繁瑣了,難怪王垠說git是反人類
===================
理解git的核心圖形
全部git 命令後面加入 -h參數能夠看到說明
git add -h git remote -h
一次性增長全部文件命令,在add以前最好先規劃好忽略文件,命令參考資料
git add -A #或者--all增長全部,適用第一次初始化,,Git2.0起,all是git add的默認參數,可用git add .代替 git add . #增長新增和修改的,排除刪除的 git add -u #增長更新和刪除的,排除新增的 git add -i #查看全部修改過或已刪除文件但沒有提交的文件 git add -h #其餘參數能夠用這個命令查看
git add -i 命令詳情參考:http://hubingforever.blog.163.com/blog/static/171040579201231110371044/
在add以前應該先增長忽略文件.gitignore文件,最好先設置忽略一下常見的系統文件:參考網站,也能夠參考github提供的例子
# 全局忽略.DS_Store(Mac下)及其餘文件, # 建立全局設置文件,而後在~/.gitconfig 中引用便可 vi ~/.gitignore_global # 文件內容: #################################### ######## OS generated files ######## #################################### .DS_Store .DS_Store? #ide配置文件 .idea *.swp ._* .Spotlight-V100 .Trashes Icon? ehthumbs.db Thumbs.db #################################### ############# Packages ############# #################################### *.7z *.dmg *.gz *.iso *.jar *.rar *.tar *.zip #git引入全局文件 vi ~/.gitconfig #加入一下內容 [core] excludesfile = /Users/hero/.gitignore_global
第一次從本地push到服務器的時候,出錯代碼:error:failed to push some refs to ...,git倉庫中已經有一部分代碼,因此它不容許你直接把你的代碼覆蓋上去,解決辦法:參考網站
# 第一種,加參數-f強制覆蓋 git push -f #第二種,將服務器上的和本地合併,而後再push上去 git fetch git merge
git遠程操做五大命令,參考網站
git clone #克隆 git remote #管理遠程主機,-h能夠看到全部參數,remove能夠移除已有的遠程主機git remote remove origin git fetch git pull git push
平常操做:
新建:
拷貝:
逐步撤銷
git checkout -- file #-- 要加上 否則就變成切換分支
git reset HEAD #HEAD 表明是當前暫存區 #若是以前沒有提交過 git rm -r --cached .
git reset --hard HEAD^ #--hard不保留修改,注意 # 已commit表示暫存區已經提交到了倉庫,HEAD^表示是上一版本 # git reset --soft : 取消了commit # git reset --mixed(默認): 取消了commit ,取消了add # git reset --hard : 取消了commit ,取消了add,取消源文件修改
git reset --hard HEAD^ git push --force
git commit -m 輸入換行符
先輸入git commit -m 'some things
而後輸入 \ 回車
能夠連續回車,最後輸入單引號'回車提交便可