目錄:
- git分支管理
- git遠程庫操作
- github
- 暫存區/緩衝區操作
- 查看git庫狀態
- 版本回退
- 衝突解決
git分支管理
查看遠程分支:
git branch -r
查看本地分支:
git branch
查看本地和遠程所有分支
(遠程分支會用紅色標記出來)
git branch -a
新建分支:
git branch '新分支名'
切換當前分支到指定分支:
git checkout '指定分支名字'
基於當前分支創建新分支並切換:
git checkout -b '新分支名字'
將分支dev2的內容合併到當前分支dev1:
git merge dev2
刪除本地分支:
git branch -d <name>
刪除遠程分支:
git push origin --delete <branchName>
git遠程庫相關操作
增加遠程倉庫
git remote add origin git@github:robbin/robbin_site.git
設置遠程倉庫地址
git remote set-url origin [email protected]:robbin/robbin_site.git
遠程庫克隆項目到本地:
git clone '遠程庫地址'
更新遠端庫:
git fetch origin
本地分支推送到遠端分支:
git push origin ‘遠程分支名’
遠端庫內容更新到本地-拉取遠端庫代碼:
git pull
GitHub
查看遠程服務器地址和倉庫名稱:
git remote -v
查看遠程服務器倉庫狀態:
git remote show origin
添加遠程倉庫地址:
git remote add [name] [url]
設置遠程倉庫地址(用於修改遠程倉庫地址):
git remote set-url [name] [url]
提交到git時,忽略部分IDE產生的文件
在根目錄下創建.gitignore文件,
注意:新加.gitignore只能忽略那些原來沒有被提交過的文件,如果某些文件已經被納入了版本管理中,則修改.gitignore是無效的。
解決方法就是先把本地緩存刪除(改變成未track狀態),然後再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
緩衝區/暫存區
添加所有文件到緩衝區
後面加“.”的區別在於,加all可以添加被手動刪除的文件,而加“.”不行:
git add .
git add --all
提交:提交緩衝區的所有修改到倉庫
(注意:如果修改了文件但是沒有add到緩衝區,也是不會被提交的)
每次修改,如果不用git add到暫存區,那就不會加入到commit中
git commit -m "提交的說明"
commit可以一次提交緩衝區的所有文件
查看git庫的狀態
未提交的文件,分爲兩種,add過已經在緩衝區的,未add過的
git status
查看提交記錄
查看該文件每次提交記錄
git log
查看最近兩次詳細修改內容的diff
git log -p -2 # 查看最近兩次詳細修改內容的diff
查看每次詳細修改內容的diff
git log -p
版本回退
可以將當前倉庫回退到歷史的某個版本
git reset
一:回退到上一個版本(HEAD代表當前版本,有一個^代表上一個版本,以此類推)
HEAD~1,上個版本 HEAD~3倒數第三個版本,以此類推
git reset --hard HEAD^
二:回退到指定版本(其中d7b5是想回退的指定版本號的前幾位)
git reset --hard 2dcfc4b7bb5bf9cf07f78632d7d04f7c49843b64 (commit id)
查看命令歷史:查看倉庫的操作歷史
git reflog
衝突解決
①先將本地修改的代碼放到暫存區
git stash
②查看暫存區(stash@{0}就是剛纔保存的標記)
git stash list
③拉取遠端代碼
git pull
④還原暫存區內容
git stash pop stash@{0}
// git stash apply # 恢復暫存的內容
// git stash drop # 刪除暫存區
系統提示如下類似的信息:
Auto-merging c/environ.c
CONFLICT (content): Merge conflict in c/environ.c
意思就是系統自動合併修改的內容,但是其中有衝突,需要解決其中的衝突。
⑤解決文件中衝突的的部分,手動結局文件衝突的內容,看一下保留哪一部分代碼