mkdir //資料夾名稱
git init //生成.git
git add 檔名
git commit -m "注釋"
git log
git log --pretty=oneline
git reset --hard heas^ //回到上乙個版本
git reset --hard 1094a //1094a是id號
git reflog //記錄的每條命令
git status //檢視狀態
//第一次修改 ->
git add -> 第二次修改 ->
git commit
gitdiff head -- readme.txt //第二次修改不會被提交
//第一次修改 ->
git add -> 第二次修改 ->
git add ->
git commit
gitdiff head -- readme.txt //第二次修改被提交了
撤銷修改
git checkout -- readme.txt //意思就是,把readme.txt檔案在工作區的修改全部撤銷
//一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
//一種是readme.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
//總之,就是讓這個檔案回到最近一次git commit或git add時的狀態。
注意:git checkout -- file命令中的--很重要,沒有--,就變成了「切換到另乙個分支」的命令
git
rm test.txt //刪除檔案
git commit -m '' //提交一下
git checkout -- test.txt //誤刪的可以恢復最新版本
git checkout -b dev //建立dev分支並且切換到dev
//下兩句同git checkout -b dev
git branch dev
git checkout dev
//git branch //檢視所有分支
git merge dev //合併dev分割槽到master上
git merge --no-ff -m "merge with no-ff" dev //合併分支表示禁用fast forward
//合併分支時,加上--no-ff引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併。
git branch -d dev //刪除dev分支
git checkout master //完成工作後切換到master
//幾步
檢視分支:git branch
建立分支:git branch
切換分支:git checkout
建立+切換分支:git checkout -b
合併某分支到當前分支:git merge
刪除分支:git branch -d
衝突git status //檢視衝突檔案
git log --graph --pretty=oneline --abbrev-commit
bug分支
git stash //可以把當前工作現場「儲藏」起來,等以後恢復現場後繼續工作
確定要在哪個分支上修復bug,假定需要在master分支上修復,就從master建立臨時分支
git stash list //檢視儲藏現場
//恢復現場
//另一種方式是用git stash pop,恢復的同時把stash內容也刪了
feature分支
//銷毀沒有(不能)合併的分支
git branch -d feature-vulcan //銷毀分支的時候提示沒有提交不能銷毀
git branch -d feature-vulcan // -d 強制刪除
git remote -v //顯示更詳細的遠端庫資訊
//顯示了可以抓取和推送的origin的位址。如果沒有推送許可權,就看不到push的位址
推送分支
//就是把該分支上的所有本地提交推送到遠端庫。推送時,要指定本地分支,這樣,git就會把該分支推送到遠端庫對應的遠端分支上
git push origin master
git push origin dev
//master分支是主分支,因此要時刻與遠端同步;
//dev分支是開發分支,團隊所有成員都需要在上面工作,所以也需要與遠端同步;
//bug分支只用於在本地修復bug,就沒必要推到遠端了,除非老闆要看看你每週到底修復了幾個bug;
//feature分支是否推到遠端,取決於你是否和你的小夥伴合作在上面開發。
git clone [email protected]:michaelliao/learngit.git
//建立遠端origin的dev分支到本地
git checkout -b dev origin/dev
//另乙個人對同樣的檔案作了修改
git push origin dev //推送失敗
git pull //也失敗了,原因是沒有指定本地dev分支與遠端origin/dev分支的鏈結,根據提示,設定dev和origin/dev的鏈結
git branch --set-upstream-to=origin/dev dev
//再pull,git pull成功,但是合併有衝突,需要手動解決,解決後,提交,再push
多人協作的工作模式通常
//首先,可以試圖用git push origin
推送自己的修改;
//如果推送失敗,則因為遠端分支比你的本地更新,需要先用git pull試圖合併;
//如果合併有衝突,則解決衝突,並在本地提交;
//沒有衝突或者解決掉衝突後,再用git push origin
推送就能成功!
rebase
git rebase //rebase操作的特點:把分叉的提交歷史「整理」成一條直線,看上去更直觀。缺點是本地的分叉提交已經被修改過了。
忽略特殊檔案
.gitignore檔案 //把要忽略的檔名填進去,git就會自動忽略這些檔案
//status變成st
git config --global alias.st status
git config --global alias.unstage 'reset head'
//reset head'變成unstage
工作常用git命令
git clone gitssh位址git config user.name 您的中文名 git config user.email 公司郵箱 將遠端分支全部獲取到本地 git fetch origin拉取遠端被跟蹤分支並衍合git pull r檢視本地分支git branch檢視遠端分支git b...
常用GIT工作流程
git clone url 建立本地倉庫 git checkout origin dev b dev 拉取遠端dev分支到本地dev分支 git checkout b ningliu 新建自己的本地分支ningliu ningliu是我的名字 git push set upstream origin...
工作中常用git命令
1.commit push 已經更新到遠端倉庫 對於已經把 push到線上倉庫,你回退本地 其實也想同時回退線上 回滾到某個指定的版本,線上,線下 保持一致.你要用到下面的命令 git revert revert 之後你的本地 會回滾到指定的歷史版本,這時你再 git push 既可以把線上的 更新...