Git經常使用命令整理

1、配置帳號、SSH

  • 1.1 配置帳號信息
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
複製代碼
  • 1.2 生成SSH key
ssh-keygen -t rsa -C "your email"

//查看公鑰
vim .ssh/id_rsa.pub 
或
open .ssh/id_rsa.pub 
複製代碼
  • 1.3 連接遠程
ssh -T git@github.com 
複製代碼

2、忽略.gitignore文件

  • 2.1 GitHub開源忽略文件地址 gitignore
  • 2.2 Xcode經常使用忽略文件
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## Build generated
build/
DerivedData/

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/

## Other
*.moved-aside
*.xccheckout
*.xcscmblueprint
.DS_Store
*.xcuserstate
*.lock

## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control

fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output

# Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode

iOSInjectionProject/
複製代碼

3、Git基本操做(經常使用)

  • 3.1 建立版本庫,命令或圖形化建立
//建立文件夾
mkdir learngit

//切換到learngit
cd learngit

//查看路徑
pwd

//經過git init命令把這個目錄變成Git能夠管理的倉庫
git init

//查看.git文件,由於這個文件是隱藏的
ls -ah
複製代碼
  • 3.2 添加文件到暫存區
//添加全部文件
git add .

//添加單個
git add [file]

//添加多個
git add [file1] [file2]
複製代碼
  • 3.3 提交暫存文件到本地倉庫
//帶備註信息
git commit -m "your note"
複製代碼
  • 3.4 克隆遠程倉庫
git clone [遠程倉庫HTTPS/SSH地址]
複製代碼
  • 3.5 查看提交日誌
//查看提交詳情
git log

//省略輸出相關信息
git log --pretty=oneline

//省略部分commit id
git log --pretty=oneline --abbrev-commit
複製代碼
  • 3.6 本地倉庫關聯遠程倉庫
git remote add origin [遠程倉庫地址]
複製代碼
  • 3.7 本地庫推送到遠程倉庫
//咱們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在之後的推送或者拉取時就能夠簡化命令。
git push -u origin master

//簡化命令
git push
複製代碼
  • 3.8 查看遠程倉庫信息
//查看遠程庫的信息
git remote

//顯示更詳細的信息
git remote -v
複製代碼
  • 3.9 獲取併合並其餘的廠庫
git pull
//將origin廠庫的master分支拉取併合併到本地的my_test分支上
git pull <遠程主機> <遠程分支>:<本地分支>
複製代碼

4、Git版本回退

  • 4.1 版本回退
//回退到上一個版本
git reset --hard HEAD^

//跳到指定版本,以前或將來
git reset --hard [commit id(前7位)]

複製代碼
  • 4.2 查看歷史命令列表
git reflog
複製代碼
  • 4.3 查看狀態
gti status
複製代碼
  • 4.4 查看工做區和版本庫裏面最新版本的區別
git diff HEAD -- [file]
複製代碼
  • 4.5 丟棄工做區的修改
//把文件在工做區的修改所有撤銷
//一種是readme.txt自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態
//一種是readme.txt已經添加到暫存區後,又做了修改,如今,撤銷修改就回到添加到暫存區後的狀態。
git checkout -- [file]
複製代碼
  • 4.6 丟棄暫存區修改
//用命令git reset HEAD file能夠把暫存區的修改撤銷掉(unstage),從新放回工做區
//git reset命令既能夠回退版本,也能夠把暫存區的修改回退到工做區。
git reset HEAD [file]
複製代碼
  • 4.7 刪除文件
//文件管理器中把沒用的文件刪了
rm [file]

//從版本庫中刪除該文件
git rm [file]

//一種狀況是刪錯了,由於版本庫裏還有呢,因此能夠很輕鬆地把誤刪的文件恢復到最新版本
git checkout -- [file]
複製代碼

5、Git分支操做

  • 5.1 建立分支
//建立dev分支,而後切換到dev分支
git checkout -b [分支名]

//git checkout命令加上-b參數表示建立並切換,至關於如下兩條命令
git branch [分支名]
git checkout [分支名]
複製代碼
  • 5.2 切換分支
git checkout [分支名]
複製代碼
  • 5.3 查看分支
//查看本地分支
git branch

//查看遠程分支,遠程分支是紅色
git branch -a

或查看最新提交信息
git branch -v
複製代碼
  • 5.4 合併分支
//把dev分支的工做成果合併到master分支上
git merge [name]
複製代碼
  • 5.5 刪除分支
//刪除本地分支
git branch -d [name]

//刪除遠程分支
git push origin :[branch name]
git branch -r -d origin/[branch name]
複製代碼
  • 5.6 查看分支合併圖
git log --graph

git log --graph --pretty=oneline --abbrev-commit
複製代碼
  • 5.7 分支管理策略
//分支管理策略
閱讀: 473797
一般,合併分支時,若是可能,Git會用Fast forward模式,但這種模式下,刪除分支後,會丟掉分支信息。
若是要強制禁用Fast forward模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就能夠看出分支信息。
git merge --no-ff -m "your note" [branch name]
複製代碼
  • 5.8 強行刪除未合併分支
git branch -D <name>
複製代碼
  • 5.9 推送分支到遠程
git push origin [branch name]
複製代碼

6、Git打標籤

參考這篇文章:MAC上Git打標籤html

2、參考文章

一、iOS 使用SourceTree忽略一些不須要版本管理的文件
二、git 查看遠程分支、本地分支、建立分支、把分支推到遠程repository、刪除本地分支git

相關文章
相關標籤/搜索