git merge 回退_Git 基础学习总结2(学不会你锤我)
前文鏈接:
Git 基礎(chǔ)學(xué)習(xí)總結(jié)(學(xué)不會(huì)你錘我)?zhuanlan.zhihu.com1. 創(chuàng)建倉(cāng)庫(kù)
方法一:克隆
通常情況下,倉(cāng)庫(kù)已經(jīng)建好,我們需要從 gitlab 或者 github 上將倉(cāng)庫(kù)下載到本地
$ git clone <url> <custom_repository_name>默認(rèn)創(chuàng)建的文件夾名稱為倉(cāng)庫(kù)名,如需自定可以替換 <custom_repository_name>
?? 這個(gè)目錄下不能有與倉(cāng)庫(kù)同名的文件夾,如果有需要保證文件夾內(nèi)是空的,否則報(bào)錯(cuò)
方法二:初始化+添加
如果是首次創(chuàng)建倉(cāng)庫(kù),則需要先在 github 或 gitlab 上創(chuàng)建一個(gè)倉(cāng)庫(kù),創(chuàng)捷完成后,會(huì)生成一個(gè)地址,在本地找個(gè)空目錄,
# 創(chuàng)建文件,或把項(xiàng)目需要的文件挪進(jìn)來(lái) $ ...2. 提交更新
如前文所述,git 的文件狀態(tài)會(huì)在三種狀態(tài)間不斷轉(zhuǎn)換:
點(diǎn)擊可查看高清大圖~~~? 檢查當(dāng)前文件狀態(tài) git status
# 顯示簡(jiǎn)潔版 $ git status -s $ git status --short M apps/api/forms.py M apps/api/views.py? 查看未暫存的文件變更 git diff
# 查看合并引入的內(nèi)容 $ git diff --ours? 加入暫存區(qū) git add
$ git add <file-1> <file-2> ---------------------------- -i, --interactive 交互式處理文件,避免輸入文件名 -u, --update 將 modified 的文件加到暫存區(qū) -p, --patch 加patch? 提交 git commit
$ git commit -m <message>Note: 提交信息應(yīng)少于 50 個(gè)字符(25個(gè)漢字)
提交的時(shí)候,若需要忽略某些文件,如.pyc,local_settings.py等,可以設(shè)定.gitnore文件
.gitignore 語(yǔ)法:
- 所有空行或者以 # 開(kāi)頭的行都會(huì)被 Git 忽略
- 可以使用標(biāo)準(zhǔn)的 glob 模式匹配
- 匹配模式可以以(/)開(kāi)頭防止遞歸
- 匹配模式可以以(/)結(jié)尾指定目錄
- 要忽略指定模式以外的文件或目錄,可以在模式前加上 !取反
? 刪除文件 git rm
刪除某個(gè) Tracked文件 不追蹤 + 刪除文件
$ git rm <filename>刪除某個(gè)既是 staged 也是 modified 的文件只能 --force
$ git rm -f <filename>不追蹤 + 保留文件 Tracked ---> Untracked
$ git rm --cached <filename>? 重命名/移動(dòng) git mv
$ git mv old.txt new.text實(shí)際上,git 執(zhí)行了下列三項(xiàng)指令
$ mv old.txt new.text $ git rm old.txt $ git add new.text? 暫存文件 git stash
$ git stash $ git stash save ------------------------- --patch 加 patch --keep-index 不 stash 已暫存的文件 --include-untracked 包含未追蹤的文件查看暫存區(qū)
$ git stash list恢復(fù)暫存的修改
{n移除指定暫存
{n直接將暫存移入新分支
[<stash>? 清理文件 git clean
$ git clean -------------------- -f 直接刪除未追蹤的文件 -f -d 直接刪除未追蹤的文件和目錄 -n 列出執(zhí)行g(shù)it clean將會(huì)被刪除的文件 -i 交互式刪除??注意:clean 不會(huì)刪除 .gitignore排除的文件,刪除排除文件加上 -x
$ git clean -f -d -x3. 撤銷
點(diǎn)擊可查看高清大圖~~~? 修改最近一次提交的備注
$ git commit --amend?? 如果提交已經(jīng)push到倉(cāng)庫(kù),修改備注之后,需要執(zhí)行g(shù)it push -f,普通 push 會(huì)失敗
$ git push -f修改多個(gè)提交的備注 可用git rebase 解決
? 撤銷修改/回退版本
# 將某個(gè)文件回退到最新版本 $ git checkout HEAD <filename>- --hard 選項(xiàng)是“硬”回退,回退不保留當(dāng)前的任何修改
- -- soft 選項(xiàng)時(shí)“軟”回退,回退并保留修改(即索引和工作目錄的內(nèi)容不變)
git reset 將 HEAD 指針指向指定的提交后,原始指針另存為 ORIG_HEAD
4.查看歷史
點(diǎn)擊可查看高清大圖~~~通常情況下 git log 即可,當(dāng)然也有一些實(shí)用的選項(xiàng)
$ git log -g 查看message與reflog $ git log -p 查看各個(gè)差異 $ git log -p -2 指定顯示數(shù)量 $ git log --stat 查看簡(jiǎn)略增刪行統(tǒng)計(jì) $ git log --graph 展示分支合并示意圖與對(duì)應(yīng)提交詳情顯示的格式可以通過(guò) --pretty 參數(shù)自定義
=oneline? 按日期或作者篩選 log
寫(xiě)工作日志或月總結(jié),忘了上周自己做了哪些項(xiàng)目,此時(shí)用這項(xiàng)指令很有用
=2019-06-01 --until? 快速查看昨天 develop 分支上的提交
{yesterday? 列出所有提交者的提交統(tǒng)計(jì)
可以看到每一個(gè)提交者分別有多少次提交,以及每次提交的提交信息
$ git shortlog?查看引用日志
其記錄了最近幾個(gè)月 HEAD 和分支引用所指向的歷史
$ git reflog下回分解: 遠(yuǎn)程倉(cāng)庫(kù) | 分支 | 變基 | 合并
Git 基礎(chǔ)學(xué)習(xí)總結(jié)3(學(xué)不會(huì)你錘我)?zhuanlan.zhihu.comThis is End -------------------------文章若有誤人子弟之處,望及時(shí)指正,必有重謝!
參考文獻(xiàn):
【1】Jon Loeliger,Matthew McCullough. Git版本控制管理(第2版). 人民郵電出版社
【2】Scott Chacon,Ben Straub. Pro Git. Apress
本文獻(xiàn)給頭號(hào)粉絲 @MMMay 以及 13k 僵尸粉大軍........
總結(jié)
以上是生活随笔為你收集整理的git merge 回退_Git 基础学习总结2(学不会你锤我)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 电车什么手续都没有了,怎么上牌子?
- 下一篇: 贵州茅台镇的酒执行标准后面加那个2011