如果你有使用github和gitee兩個倉庫,要重新配置ssh key,解決沖突那么請先看這個文章?點擊
- github就是一個網上倉庫(分布式版本控制系統)采转,當你下載了gitbash后該怎么使用一些常用命令呢衣撬?
這里我做了一些直白的記錄,淺顯易懂直觀即看即用板壮,這些命令是讓你在工作上成為一位git用戶,
在平時使用命令中一堆操作上不再苦惱~
當然你想深入了解合住,歡迎去到廖雪峰Git系統網站學習?穿梭機
-
倉庫添加文件 ↓
開始的時候绰精,當你在clone下項目后,新建或修改了文件需要添加線上時:( git pull 執(zhí)行拉取最新代碼-保證代碼最新)
git add . // 添加所有文件
git commit -m '填寫本次信息' // 提交備注
git push // 推送遠程
-
倉庫新建分支 ↓
當你想在項目中創(chuàng)建一個目錄(分支):可以把修改的代碼再添加文件到該目錄下
git branch testName // 分支-名字
git checkout testName // 切換到分支
or
git checkout -b testName // 創(chuàng)建并切換到的分支下
-
推送分支 ↓
以下執(zhí)行把 -創(chuàng)建的目錄(分支)-推送到遠程線上
git push origin testName // 把本地分支提交到遠程倉庫
or
git push origin testName:testName // 分支的推送到遠程-本地分支:(推送到)遠程倉庫上
-
合并你的代碼 ↓
回到主分支 / 以及-把分支代碼-合并到主分支項目上
git checkout master // 切換分支
git merge testName // 合并分支
git push // 推送遠程
-
暫存代碼^將當前工作區(qū)的修改暫存起來 ↓
有時候修改了代碼透葛,又要更新代碼(pull)然后又不被覆蓋怎么辦呢笨使?
git stash // 先把本地代碼保存起來
git pull // 再更新
那保存怎么取出來了呢?
git stash pop // 取出剛才的保存
然后去解決你的本地沖突就行了
-
撤銷先前commit ↓
在git push之前僚害, git commit的內容后悔了怎么辦呢硫椰?
或者你想回退到之前某個版本的代碼,恢復到本地后可以選擇覆蓋和不覆蓋當前的修改
假如你現在是這種情況萨蚕,C是你的HEAD靶草,(F)是你當前文件的狀態(tài)。
(F)
A-B-C
↑
master
你想要除掉C岳遥,并且再也不想見到它奕翔。那么你這么做:
git reset --hard HEAD~1
執(zhí)行完后的結果就是:
(F)
A-B
↑
master
現在B是HEAD了。因為你使用了--hard寒随,所以你的文件被重置到B的狀態(tài)了糠悯。
當你要撤銷提交,但是保留你更改的代碼信息妻往,然后做一些修改互艾,再提交一遍。下面看看狀態(tài)的情況:
(F)
A-B-C
↑
master
那種情況下不用使用--hard:
git reset HEAD~1
來看下HEAD的下標:
(F)
A-B-C
↑
master
在正常情況下讯泣,HEAD都是指向最近一次提交的一個指針纫普。當你使用 git reset HEAD~1 命令時,你告訴Git將HEAD指針往前回退一次好渠,到上一個 commit 上昨稼。但是(除非你使用--hard參數)你仍然沒有改變文件。那么 git status 會告訴你之前提交到 C 的修改變化還會存在拳锚。之前手碼的都沒有丟失假栓。
所以想要最輕微的改動,撤銷你的提交的同時還保留著你的文件和索引:
git reset --soft HEAD~1
-
reset恢復刪除的文件
$ ls
A文件/ B文件/ C文件/ D文件/
先刪除一個文件作為試驗霍掺,查看操作狀態(tài)會有deleted的文件匾荆,可以看到列表中已經剩下的三個文件
$ git rm A文件
rm 'static_files/abbr_data'
$ git status // '接著查看最新狀態(tài)'
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: A文件
$ ls
B文件/ C文件/ D文件/
最后通過reset把刪除的文件文件給恢復就好啦
$ git reset HEAD A文件
Unstaged changes after reset:
M /A文件
-
本地撤銷后悔了拌蜘,恢復某一次的提交 ↓
- 執(zhí)行git reflog查看顯示日志,所有HEAD的歷史: git reflog
git reflog
// 以下為記錄信息
002abcdgrhfkhdg HEAD@{0}: commit: 第二次提交
001abcdgrhfkhdg HEAD@{1}: commit: 第一次提交
2.找到想要恢復的SHA牙丽,執(zhí)行以下恢復ok了:
git reset --hard 002abcdgrhfkhdg
-
回退線上某一次提交記錄
1.點開commit提交简卧,找到想要回退的一次commit id信息
commit 003abcde123fghijk <復制
2.重置到你某一次commit的版本號
git reset --hard 003abcde123fghijk
3.以master分支為例,強制覆蓋線上倉庫的分支烤芦,此操作只適合個人的項目*慎重做個備份(可以修改為你當前的分支)
git push -f -u origin master
-
提交錯了分支該怎么辦举娩?↓
首先當然是先回滾你的提交并保留最新的更改,然后把修改的放入暫存區(qū)构罗,在切換到你需要推送的分支進行提交铜涉,修改內容再提出來
假設你提交到了branch-1的情況下
git reset HEAD~1
...
git stash
...
git checkout branch-2
...
git stash pop
緊接著做你想做的事情就好了,比如這里再進行提交信息:
git add
...
git commit -m "okok"
...
git push branch-2
但是你的branch-1分支多了一次不需要的提交,想要弄回來原模原樣的記錄:
git checkout branch-1
...
git push origin branch-1 -f