1.常用的命令 mkdir 文件夾名 創建文件夾 clear 清楚屏幕 ls或者ll 將當前目錄下的子文件和子目錄平鋪在控制台 find 目錄名 將對應目錄下的子孫文件或子孫目錄平鋪在控制台 rm 文件名 刪除文件 mv 源文件 重命名文件 cat ... 查看對應文件內容 2.git高級命令 gi ...
1.常用的命令
mkdir 文件夾名 創建文件夾
clear 清楚屏幕
ls或者ll 將當前目錄下的子文件和子目錄平鋪在控制台
find 目錄名 將對應目錄下的子孫文件或子孫目錄平鋪在控制台
rm 文件名 刪除文件
mv 源文件 重命名文件
cat ... 查看對應文件內容
2.git高級命令
git 操作基本流程
- 創建一個文件夾(項目)
git init
項目下出現 .git 文件 - git全局配置
git config --global user.name "XXXX"
git config --global user.email "XXXX"
- 在所在項目中工作 (例如你在src文件下寫完你的代碼)
項目代碼寫完,執行 git add 路徑 (一般直接寫 git add ./ 將所有代碼提交到暫存區
git add ./
命令流程(先到版本庫再到暫存區 git hash-object -w 文件名 git update-index 不理解就去看git的底層命令) - 代碼提交
git commit -m "註釋內容"
(提交到本地庫) - 分支上工作(項目主分支是dev,開發使需要創建新的分支,例如創建test)
1. 創建分支git branch test
2. 切換分支git checkout test
(切換操作,必須保持分支的處於已提交狀態)
註:可以直接創建並切換git checkout -b test
3. 分支上工作順序 (首次無需拉取遠程dev代碼)
4. 拉取遠程dev代碼(或者合併dev代碼)
git pull origin "dev"或git merge dev
處理衝突,然後工作
5. 事情處理完,將修改後內容添加至暫存區
git add ./
6. 添加暫存區後再添加到本地倉庫
git commit -m "註釋"
7. 將分支代碼提交到遠程倉庫
如果項目是首次創建,需要和遠程倉庫連接(如果項目是直接從遠程 clone,則無需操作)
git remote add origin 地址
git push -u origin test
8. 提交分支後,團隊leader會審查代碼,再合併到dev上
git操作
-
如何修改分支名稱?
需要將分支br_rename_old修改為br_rename_new,執行如下步驟:
1、執行命令git checkout br_rename_old
2、執行命令git pull origin br_rename_old
將代碼更新到和遠程倉庫一致
3、執行命令git branch -m br_rename_old br_rename_new
將本地倉庫的br_rename_old的名稱修改為br_rename_new
4、執行命令git push --set-upstream origin br_rename_new
將本地分支push到遠程倉庫
5、執行命令git push origin --delete br_rename_old
將遠程分支br_rename_old刪除 -
如何刪除暫存區文件?(可以使用編輯自帶)
1、僅僅刪除暫存區文件
git rm --cache 當前文件所在目錄
(例如git rm --cache src/vdfvsdfvosdjfvosdfvdof.txt
)
2、暫存區和工作區都刪除
git rm -f 當前文件所在目錄
(例如git rm -f src/vdfvsdfvosdjfvosdfvdof.txt
) -
如何刪除版本庫?(已提交)
1.僅僅只是撤銷已提交的版本庫,不會修改暫存區和工作區
當我們執行 --soft 命令後,可以看到控制台無任何輸出。它只是把HEAD指向了上一個版本
git reset --soft HEAD^
(指向上一個版本)
git reset --soft 版本庫ID
2.僅僅只是撤銷已提交的版本庫和暫存區,不會修改工作區
git reset ----mixed HEAD^
3.徹底將工作去/暫存區和版本庫記錄恢復到指定的版本庫
git reset --hard HEAD^
(返回上一個)
git reset --hard HEAD@{n}
(通過reflog返回)或者git reset --hard 版本庫id
(通過reflog返回)** -
git fetch作用?
更新遠程 從遠端倉庫中下載commits, files, refs到本地倉庫中。當你想要看看其他人都在做些什麼的時候,就要使用fetch命令。
你可以認為git fetch是這兩者中更加安全的那個,即便下載了遠端的內容,但也不會更新你本地倉庫的版本狀態,以保證你本地當前代碼完好無損。反觀git pull命令則是一個更加激進的命令,它會下載當前正在工作的分支對應的遠端內容,並且在下載成功之後馬上執行一個git merge命令,為新下載下來的遠端內容創建一次merge commit。此時如果你有正在進行中的工作還沒準備好進行合併,這些行為可能會造成代碼衝突。 -
git stash作用?(以及git stash pop)
在某分支上修改內容,這時候卻需要切換其他分支,但沒修改好不想提交,可以使用git stash 命令,將但前分支沒修改好的代碼,保存至堆棧區,在切換到別的分支操作。在別的分支操作完,切回到剛纔的分支,可以先將剛纔分支刪除,在重新創建,切換後,在把剛纔保存在堆棧的修改內容,pop出來,執行 git stash pop命令(可以在任意分支pop出來) -
刪除分支?
git branch -D '分支名' 刪除本地分支
git push origin --delete 分支名 刪除遠程分支 -
如何更新本地分支內容?(例如主分支為dev,當前分支為test)
如果想拉去dev分支最新代碼
方法一:git pull origin dev (做了兩步操作,拉去dev最新代碼,並將它合併到當前分支)
方法二:git merge dev (將dev分支合共到當前分支,dev不是最新還需要切到dev分支更新,切換之前先git stash) -
常用命令
git branch -r
查看所有遠程分支git branch -a
列出所有本地分支
git checkout -
切換到上一個分支 (可以方便兩個分支之間進行切換)
git push origin --delete
分支名 刪除遠程分支
git status
顯示有變更的文件
git log
顯示當前分支的版本歷史
git diff
顯示暫存區和工作區的差異 (你可以查看你改了什麼,前期你沒有添加到暫存)
git fetch
下載遠程倉庫所有變動 (哪些分支新建了等)
git stash
(未跟蹤的文件不會被緩存,例如新創建的文件)
git stash list
查看緩存了幾條
git stash save "test-cmd-stash"
git stash pop
//命令恢復之前緩存的工作目錄,這個指令將緩存堆棧中的第一個stash刪 除,並將對應修改應用到當前的工作目錄下。(並將緩存拷貝刪除)
git stash apply
//命令,將緩存堆棧中的stash多次應用到工作目錄中,但並不刪除stash拷貝。
git stash apply stash@{n}
n表示第幾個到工作區
git stash drop
//移除stash 移除具體哪一個
git stash drop stash@{n}
git stash clear
//刪除所有緩存的stash -
撤回push操作?(遠程倉庫)撤回已經提交到遠程的代碼
先head指向要回到的版本,在強行推送到遠端
git push --force
例如撤回前兩個,只需將本地head指向第三個,在強行推送到遠端
git reset --hard 1c41df20421e36343d453d64477e0594fd98b041
git push --force
10. reset回退commit,後悔咋辦?
例如執行git reset --hard HEAD^,指向了別的版本,想在回來。
執行git reflog 查看所有 HEAD的切換 找到版本id,在執行git reset --hard 版本id
上圖是執行git reflog後的結果
git reflog
展示你歷史操作記錄,在你執行錯誤命令時,可以幫助你快速返回執行錯誤之前的狀態
reflog第一個記錄(HEAD@{0})就是你最新的操作記錄,如果你想返回這操作之前的一個步驟,只需將 HEAD指向HEAD@{1} ,具體操作如下:
git reset --hard HEAD@{1}
或者 git reset --hard baa789e
(對應的版本id)