學習Git,這篇文章足矣

#經常使用命令
看這個: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遠程操做詳解算法

阮一峯經常使用Git命令清單bash

 

Git進階服務器

阮一峯Git使用規範流程ide

阮一峯Git分支管理策略fetch

阮一峯Git工做流程(flow)網站

阮一峯Github的清點對象算法ui

合併merge和rebase的區別

git命令cheat sheet

帶'(撇號)和其餘的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

平常操做:

新建:

  1. 先在git的網站新建好項目
  2. 而後在本地克隆:git clone url
  3. 將本地代碼拷貝進去
  4. 將全部代碼放到git清單:執行git add -A
  5. git commit -m "初始化"
  6. 將本地推送到服務器端:git push -u origin master

拷貝:

  • git clone url 

逐步撤銷

  • 已修改還未add:
    git checkout -- file #-- 要加上 否則就變成切換分支
  • 已add還未commit:
    git reset HEAD  #HEAD 表明是當前暫存區
    
    #若是以前沒有提交過
    git rm -r --cached .
  • 已commit還未push:
    git reset --hard HEAD^ #--hard不保留修改,注意
    # 已commit表示暫存區已經提交到了倉庫,HEAD^表示是上一版本
    # git reset --soft : 取消了commit  
    # git reset --mixed(默認): 取消了commit ,取消了add
    # git reset --hard : 取消了commit ,取消了add,取消源文件修改
  • 已push:
    git reset --hard HEAD^
    git push --force

git commit -m 輸入換行符

先輸入git commit -m 'some things

而後輸入 \ 回車

能夠連續回車,最後輸入單引號'回車提交便可 

相關文章
相關標籤/搜索