git config --global user.name "Your Name"
git config --global user.email "email@example.com"
複製代碼
ssh-keygen -t rsa -C "your email"
//查看公鑰
vim .ssh/id_rsa.pub
或
open .ssh/id_rsa.pub
複製代碼
ssh -T git@github.com
複製代碼
# 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/
複製代碼
//建立文件夾
mkdir learngit
//切換到learngit
cd learngit
//查看路徑
pwd
//經過git init命令把這個目錄變成Git能夠管理的倉庫
git init
//查看.git文件,由於這個文件是隱藏的
ls -ah
複製代碼
//添加全部文件
git add .
//添加單個
git add [file]
//添加多個
git add [file1] [file2]
複製代碼
//帶備註信息
git commit -m "your note"
複製代碼
git clone [遠程倉庫HTTPS/SSH地址]
複製代碼
//查看提交詳情
git log
//省略輸出相關信息
git log --pretty=oneline
//省略部分commit id
git log --pretty=oneline --abbrev-commit
複製代碼
git remote add origin [遠程倉庫地址]
複製代碼
//咱們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在之後的推送或者拉取時就能夠簡化命令。
git push -u origin master
//簡化命令
git push
複製代碼
//查看遠程庫的信息
git remote
//顯示更詳細的信息
git remote -v
複製代碼
git pull
//將origin廠庫的master分支拉取併合併到本地的my_test分支上
git pull <遠程主機> <遠程分支>:<本地分支>
複製代碼
//回退到上一個版本
git reset --hard HEAD^
//跳到指定版本,以前或將來
git reset --hard [commit id(前7位)]
複製代碼
git reflog
複製代碼
gti status
複製代碼
git diff HEAD -- [file]
複製代碼
//把文件在工做區的修改所有撤銷
//一種是readme.txt自修改後尚未被放到暫存區,如今,撤銷修改就回到和版本庫如出一轍的狀態
//一種是readme.txt已經添加到暫存區後,又做了修改,如今,撤銷修改就回到添加到暫存區後的狀態。
git checkout -- [file]
複製代碼
//用命令git reset HEAD file能夠把暫存區的修改撤銷掉(unstage),從新放回工做區
//git reset命令既能夠回退版本,也能夠把暫存區的修改回退到工做區。
git reset HEAD [file]
複製代碼
//文件管理器中把沒用的文件刪了
rm [file]
//從版本庫中刪除該文件
git rm [file]
//一種狀況是刪錯了,由於版本庫裏還有呢,因此能夠很輕鬆地把誤刪的文件恢復到最新版本
git checkout -- [file]
複製代碼
//建立dev分支,而後切換到dev分支
git checkout -b [分支名]
//git checkout命令加上-b參數表示建立並切換,至關於如下兩條命令
git branch [分支名]
git checkout [分支名]
複製代碼
git checkout [分支名]
複製代碼
//查看本地分支
git branch
//查看遠程分支,遠程分支是紅色
git branch -a
或查看最新提交信息
git branch -v
複製代碼
//把dev分支的工做成果合併到master分支上
git merge [name]
複製代碼
//刪除本地分支
git branch -d [name]
//刪除遠程分支
git push origin :[branch name]
git branch -r -d origin/[branch name]
複製代碼
git log --graph
git log --graph --pretty=oneline --abbrev-commit
複製代碼
//分支管理策略
閱讀: 473797
一般,合併分支時,若是可能,Git會用Fast forward模式,但這種模式下,刪除分支後,會丟掉分支信息。
若是要強制禁用Fast forward模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就能夠看出分支信息。
git merge --no-ff -m "your note" [branch name]
複製代碼
git branch -D <name>
複製代碼
git push origin [branch name]
複製代碼
參考這篇文章:MAC上Git打標籤html
一、iOS 使用SourceTree忽略一些不須要版本管理的文件
二、git 查看遠程分支、本地分支、建立分支、把分支推到遠程repository、刪除本地分支git