1. 程式人生 > >git命令大集合

git命令大集合

git 忽略配置

複製程式碼
全域性忽略DS_Store:

1.vi ~/.gitignore_global 
在gitignore_global中寫入: 
.DS_Store 
*/.DS_Store 
2.vi ~/.gitconfig 
配置.gitconfig 檔案如下: 
[user] 
name = xiaoronglv 
email = [email protected] 
[push] 
default = matching 
[core] 
excludesfile = /Users/holy/.gitignore_global 
其中:/Users/holy 可以在命令列輸入pwd即可檢視。
複製程式碼

 

詳見:http://blog.csdn.net/que_li/article/details/52918545

git 使用整理

金鑰生成

複製程式碼
cd ~/.ssh       //檢查本機中是否有公鑰資訊
mkdir key_backup
cp id_rsa*key_backup        
rm id_rsa       //刪除已有公鑰
"新生成公鑰"
ssh-keygen -t rsa -C "git註冊賬號郵箱"        //回車後會讓輸入使用者名稱,再回車輸入密碼,在是確認密碼
cat ~/.ssh/id_rsa.pub  //顯示剛生成的公鑰

/*將公鑰新增到本地*/
<windows>
clip < ~/.ssh/id_rsa.pub
<Mac>
pbcopy < ~/.ssh/id_rsa.pub
<Linux>
xclip -sel clip < ~/.ssh/id_rsa.pub
然後在 .ssh檔案中的 id_rsa就為公鑰
把公鑰新增到coding中
然後執行 ssh -T 
[email protected]
看是否已經聯通
複製程式碼

上傳檔案到專案

複製程式碼
電腦中建立一個空檔案,不要以中文命名。
開啟電腦cmd命令框
cd 檔案目錄 //配置檔案根目錄
git init            //初始化
git remote add origin 遠端專案地址        //連結遠端伺服器
git add .       //上傳目錄下所有檔案
git commit -m "第一次上傳"       //提交,並註釋
git pull origin 分支      //連結遠端主機分支到本地
git push origin master      //上傳本地所有檔案到master分支
git push -u origin 分支       // 當遠端存在多個分支時,使用-u
複製程式碼

本地分支

複製程式碼
git branch      //檢視本地所有分支
git branch xxxx //建立xxxx分支
git checkout xxxx   //切換到分支xxxx
git branch -d xxxx  //刪除本地xxxx的分支,注意需要在非刪除分支下

切換分支時提示you need to resolve your current index first
git reset --merge
複製程式碼

克隆程式碼到本地

git clone 遠端地址  // 下載遠端程式碼到本地
git clone 遠端地址 -b xxxx  // 克隆遠端某分支上的程式碼,xxxx為分支名

刪除檔案

clone遠端檔案後,刪除需要刪除的檔案,然後
git add --all

刪除遠端倉庫檔案及資料夾

git rm -r --cached ignore_file //刪除快取
git rm -r --cached a/2.txt //刪除a目錄下的2.txt檔案   
git rm -r --cached a // 刪除a目錄
git commit -m "刪除a目錄下的2.txt檔案" 
git push

查詢跟蹤

git status
反饋:
    nothing to commit,working directory clean       //  沒有提交,專案很乾淨
    changes not staged for commit       // 有紅字提示,專案被修改,但是未被暫存
    changes to be committde     // 綠字提示,專案已經被暫存

遠端庫操作

git remote      // 列出遠端分支
git remote -v       // 列隊遠端分支對應的url
git remote add xxx url      // 建立遠端地址為url的xxx分支
git remote remove xxx   //刪除遠端分支xxx
git remote set-url xxx url      // 將xxx的遠端地址變更為url

config,設定多個金鑰到本地

//第一個金鑰使用預設形式,第二個金鑰配置如下
Host gitlab地址 andy  // andy為需要的名稱
HostName gitlab地址
User git
Port 22
IdentityFile ~/.ssh/gitlab_id_rsa   // 金鑰地址

rebase

https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase
https://www.atlassian.com/git/tutorials/merging-vs-rebasing

 

多分支操作合併到master

複製程式碼
// 自己的工作分支
git checkout xxx

// 提交工作分支修改
git commit -a

// 回到主分支
git checkout master

// 獲取遠端最新的修改,不會產生衝突
git pull

// 回到工作分支
git checkout xxx

// 合併主幹修改,如果有衝突在此時解決
git rebase master

// 回到主分支
git checkout master

// 合併工作分支的修改,此時不會產生衝突
git merge xxx

// 提交到遠端主幹
git push
複製程式碼

刪除遠端分支

git push --delete origin xxx        //刪除遠端上xxx的分支

清空快取棧

git stash clear

node_modules過長無法刪除

rm -rf node_modules/

push tag釋出

git tag publish/版本號
git push origin publish/版本號

切換分支

$ ~/ccbin/mkview.sh  切換分支

專案相關命令

複製程式碼
##ssh三方訪問工具SecureCRT 一般口令
ssh [email protected]伺服器地址
* 伺服器名稱:admin
* 密碼:
* cd ccbin  切換到ccbin檔案
* ./ccupdate.sh 更新伺服器 
* ./ccupdate.sh && ./build.sh && ./deploy.sh
* 錯誤日誌  
* cd logs/appstore 切換到對應專案日誌
* ls 檢視日誌列表
* tail -f common-error.log 
* 修改antx
    * vim antx.properties
    * i修改 :w 保持 :q 退出
    * ls 檢視目錄下的內容
    * tail -200f common-error.log 檢視錯誤日誌
複製程式碼

 

刪除資料夾

* cd /usr/local/bin 切換路徑
* sudo rm -rf /usr/local/bin/tnpm 刪除tnpm資料夾


建立並切換到本地分支 

* git checkout -b 【本地分支名】 origin/【遠端分支名】

刪除.git 重新初始化git(delete the old .git history and initialize new history)

$ rm -rf .git
$ git init

檢出命令

* git clone -b 【本地分支名】【遠端分支名】

合併分支:

* git branch 檢視本地分支
* git branch -a 檢視分支詳情(本地分支及遠端分支)
* git checkout 目的分支(如master)
* git merge 待合併分支(如branch1)【即將branch1分支合併到master】
* git push origin master 將合併後的程式碼推送到遠端分支


回滾版本

* git log 檢視提交版本
* git revert 版本號 將本地庫回滾到該版本號之前的版本(即取消該版本及之後的提交)
* 解決衝突
* git add . && git commit -m “” && git push 重新提交版本之前的程式碼

刪除分支

* git branch -D br 刪除本地分支
* git push origin :br  (origin 後面有空格) 刪除遠端分支

【遠端程式碼庫回滾】:

複製程式碼
這個是重點要說的內容,過程比本地回滾要複雜
應用場景:自動部署系統釋出後發現問題,需要回滾到某一個commit,再重新發布
原理:先將本地分支退回到某個commit,刪除遠端分支,再重新push本地分支
操作步驟:
1、git checkout the_branch
2、git pull
3、git branch the_branch_backup //備份一下這個分支當前的情況
4、git reset --hard the_commit_id //把the_branch本地回滾到the_commit_id
5、git push origin :the_branch //刪除遠端 the_branch
6、git push origin the_branch //用回滾後的本地分支重新建立遠端分支
7、git push origin :the_branch_backup //如果前面都成功了,刪除這個備份分支
複製程式碼

 http://www.jianshu.com/p/8f0433090e2b?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io  Git詳解以及使用遇到問題解決

 

Git stash 命令

git stash: 備份當前的工作區的內容,從最近的一次提交中讀取相關內容,讓工作區保證和上次提交的內容一致。同時,將當前的工作區內容儲存到Git棧中。
git stash pop: 從Git棧中讀取最近一次儲存的內容,恢復工作區的相關內容。由於可能存在多個Stash的內容,所以用棧來管理,pop會從最近的一個stash中讀取內容並恢復。
git stash list: 顯示Git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。
git stash clear: 清空Git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。

 

一、For Windows

  • 下載地址:http://msysgit.github.io/
  • 安裝完成後,在開始選單裡找到“Git”->“Git Bash”,蹦出一個類似命令列視窗的東西,就說明Git安裝成功!
  • git 配置(其實是為常用命令創造別名)
    $ git config --global user.name "Your Name" 

  •   $ git config --global user.email "[email protected]"



—global 這個引數是說明,當前裝置上的所有Git都會使用這個配置。

  • 建立版本庫
    $ mkdir abc //建立目錄 abc

  •   $ cd abc //進入 abc 目錄

  •   $ pwd //顯示當前目錄

  •   執行結果:/Users/userName/abc



  • 將abc目錄變為某專案的版本庫目錄
    $ git init //初始化,會生成一個 git資料夾,注意別動改資料夾下內容。用於跟蹤管理版本

  •   執行結果:Initialized empty Git repository in /Users/userName/abc .git/



  • 新增檔案
    $ git add README.MD  //當前目錄下,建立README.MD

  •   $ git commit -"123123" //新增備註,並添提交至git倉庫

  •   對於 git config -"" 的省略,可以為 git c



commit是批量型提交,但add確是需要多次新增一個檔案

  • 檢視狀態

$ git status

  • 關聯遠端庫
    $ git remote add origin 遠端庫地址 //遠端庫地址是託管平臺建立程式碼庫時所生成的xxxx.git



主要用於對程式碼託管平臺進行維護,github、coding

  • 更新遠端程式碼到本地
  • git clone xxx.git庫地址

  •   git pull origin master



  • 將git倉庫的專案檔案,提交至遠端庫
    git push -u origin master  //將該目錄下的檔案推送到遠端(origin)上的 "master" 分支,第一次提交必須這麼寫

  •   git push origin master //推送最新修改,第一次之後每次更新可以使用該命令



  • 版本回滾
    git log //輸出提交的歷史記錄

  •   git checkout 9位字元編碼

  •   或者

  •   git checkout -b my_previous_version 9位字元編碼



  • 刪除分支
    git branch -d new_feature//把分支合併到主幹分支,從主幹(master)分支上傳送



    • 假如修已經合併了,那麼只會刪除分支。假如分支未合併,會得到錯誤資訊。所以需要強制刪除
      git branch -D new_feature



 

  • 總的來說
    $ git init

  •   $ git remote add origin xxxx.git

  •   $ git pull

  •   $ git add .

  •   $ git commit -"123123" 

  •   $ git push



在 git 中忽略檔案 gitignore 與 exclude

常見問題

  • error: failed to push some refs to …
    1. 這是由於遠端倉庫中程式碼版本與本地不一致衝突導致的,需要先git pull更新
    2. 如果出現報錯 fatal: Couldn’t find remote ref master或者fatal: ‘origin’ does not appear to be a git repository以及fatal: Could not read from remote repository.
    3. 則需要重新輸入$ git remote add xxxx.git
  • fatal: remote origin already exists. 
    1. $ git remote rm origin
    2. $ git remote add origin xxxx.git
    3. 如果輸入$ git remote rm origin 還是報錯的話,error: Could not remove config section ‘remote.origin’. 我們需要修改gitconfig檔案的內容
    4. 找到你的github的安裝路徑,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc.找到一個名為gitconfig的檔案,開啟它把裡面的[remote “origin”]那一行刪掉就好了!
  • there is no tracking information
    1. 該問題發生在新建立遠端庫,進行git pull更新時
    2. git branch —set-upstream master origin/master //這樣才可以直接輸入git pull 、git push
    3. 否則每次輸入 git push origin master || git pull origin master
    4. 最後按以下方式提交
      git add .  

    5.  git commit -"first time add project"  

    6.  git push



命令一覽表

 

 

 

原文:https://www.cnblogs.com/weilantiankong/p/6144443.html