前言
用習慣簡書之后大二很長的一段時間都沒有碰git了,比較重要的安卓代碼被我打成壓縮包保存了幾個版本,雖然說每次打包都是確保在手機上運行并且確保沒有bug的前提下進行的,但之后絕逼不會再去解壓以前的壓縮包來看,這就失去了當初保存來為了日后回顧的意義。好吧,假期也過了大半才又開始學會這方面的知識,這回為了不像大一那樣學了不用過久就忘所以還是做點筆記的好。
操作步驟
第一次操作的需要配置用戶名(git config --global user.name "你的名字")和用戶的郵箱(git config --global user.emil "你的郵箱")。
在本地創建的工程想要進行版本控制就在該項目的文件夾下面進行初始化操作(git init)
然后add然后commit巴拉巴拉
git clone
ls -al
git status
git add .
git commit -m ""
git pull
git push origin
基礎操作
- 初始化倉庫
git init
- 查看倉庫的狀態
git status
- 向緩存區添加文件
git add README.md #添加指定文件名的文件
git add . #一次性添加所有文件
- 保存倉庫的歷史記錄
git commit -m "添加一句你想要說的話"
git commit #添加多行說明,第一行簡述、第二行空格、第三行詳細內容
git commit -am #也可以添加文件的同時提交歷史紀錄
git commit --amend #修改上一條提交的消息
- 查看提交日志
git log
git log --pretty=short #只顯示第一行
git log README.md #只顯示指定目錄或文件
git log -p #顯示文件的改動
git log --graph #以圖標的方式查看分支
- 查看文件前后的區別
git diff
git diff HEAD #查看工作樹和HEAD指向提交的差別
分支操作
- 查看、創建、刪除分支
git branch
git branch -a #同時顯示本都and遠程的倉庫信息
git branch 分支名 #創建分支
git branch -b 分支名 #刪除分支
- 切換分支
對分支進行提交稱為培育分支
git checkout 分支名
git checkout -b 分支名 #創建并切換分支
git checkout - #返回上一個分支
git checkout 文件名.后綴 #切換到最初的版本
- 合并分支
git merge 需合并的分支名 #將需要合并的分支合并到當前分支
git merge --no-ff 需合并的分支名 #在歷史記錄中明確記錄本次分支合并需加上--no-ff
- 壓縮歷史
在合并分支之前如果發現有拼寫錯誤,修改后又不想占用歷史提交記錄的可選擇壓縮
#選定當前分支中包含HEAD在內的兩個最新的歷史紀錄將要刪除記錄的pick改為fixup
git rebase -i HEAD~2
#可以創建更線性的提交歷史,就是可與把分支的工作合并到主分支上
#合并之后的分支在主分支的最頂端
#想要更新可以使用(git rebase 分支名)命令
git rebase master #講當前分支合并到master分支
- 回溯歷史版本
git reset --head 哈希值 #哈希值通過日志查出
git reset --hard HEAD~1
git revert 哈希值前幾位
遠程倉庫
- 添加遠程倉庫,將本地項目與遠程關聯。
#將遠程倉庫的名稱(git@github.com:用戶名/項目名.git)設置為origin(標識符)
git remote add origin git@github.com:用戶名/項目名.git
- 推送至遠程倉庫
-u在推送的同時將origin倉庫的master分支設置為本地倉庫當前分支的upstream(上游)
git push #將當前的分支提交上去
#第四個參數可寫成 (本地倉庫名:遠程倉庫名) 的形式,一致情況下寫一個
git push 遠程倉庫名 分支名或者tag名 #(例:git push origin master)
git push -u origin 分支名 #推送至mster以外的分支
git push origin :遠程分支名 #刪除遠程分支
- 從遠程倉庫獲取
#自動將origin設置成該遠程倉庫的標識符
git clone git@github.com:用戶名/項目名.git
git checkout -b 分支名 origin/分支名 #獲取遠程的分支
- 獲取最新的遠程倉庫分支
git pull #因為你不知道你本地的代碼是否是新的,所以push前最好先pull
- 忽略文件
創建項目時選中.gitignore模板,格式為
# 注釋
* 忽略的文件
方便人類的操作
首先Git有一個叫做git config的工具,專門用來配置或讀取相應的工作環境變量,這些變量存放在三個文件中。
/etc/gitconfig
面向系統中所有的用戶,存放路徑為Git的安裝路徑 ,不過我并沒有找到。
命令調用前綴:git config --system~/.gitconfig
面向當前用戶,存放路徑為 c盤/用戶/用戶名/.gitconfig
命令調用前綴:git config --global項目當前目錄下的.git/config
面向當前項目,存放路徑.git/config
在含有相同配置信息的情況下優先級秒殺前兩個(每一級別相同的配置會覆蓋上一級別)
命令調用前綴:git config(比如某個項目中使用其他名字或者郵箱)配置代碼
git config --global color.status #查看狀態時高亮顯示
git config --global color.branch #分支名高亮顯示
git config --global color.ui auto #自動高亮
git config --global
- 命令的別名配置
git config --global alias.新名字 原始命令
#例:git config --global alias.st status
- 為正式版本打一個標簽
git tag -a v1.0 -m "每個正式版最好都打一個標簽"
git tag #查看當前項目的所有標簽
git tag -d 標簽名 #刪除對應的標簽
git tag show 標簽名 #查看當前分支的具體信息
文件的基礎操作
- 創建文件夾
mkdir 文件名
- 創建文件
touch 文件名.后綴
- 進入文件夾
cd 文件名