1.初始化自己的git項目
mkdir firstGit
cd firstGit
git init
在firstGit下創(chuàng)建自己的文件然后執(zhí)行如下提交操作
git add 你的文件名
git commit -m '修改描述'
查看修改記錄:
git log
或是
git reflog
查看當(dāng)前的狀態(tài)包括沖突狀態(tài):
git status
版本回退:
git reset --hard HEAD^ // 回退到上一個版本
git reset --hard HEAD^^ // 回退到上上個版本
git reset --hard HEAD~100 // 回退到上100個版本
git reset --hard 版本號// 1094a應(yīng)為git log中需要回退的制定版本的版本號
當(dāng)你改亂了工作區(qū)某個文件的內(nèi)容企且未提交到暫存區(qū)時所踊,想直接丟棄工作區(qū)的修改時岔绸,用命令
git checkout -- 文件名
當(dāng)你改亂了工作區(qū)某個文件的內(nèi)容企且提交到暫存區(qū)時供鸠,想丟棄剛才的修改時惋戏,用命令
git reset HEAD 文件名 // 撤銷暫存區(qū)的文件修改
git checkout --文件名 // 丟棄當(dāng)前工作區(qū)的修改
刪除文件:
git rm 文件名 // 刪除文件
git commit -m '描述' // 將刪除操作添加進去
遠程庫 github
連接github
git remote add origin git@github.com:michaelliao/learngit.git
// 其中origin為遠程庫的名字,michaelliao為你的github名字牍汹,learngit.git為你的項目名稱
將內(nèi)容推送到github
git push -u origin master
//由于遠程庫是空的榨咐,我們第一次推送master分支時版姑,加上了-u參數(shù),Git
//不但會把本地的master分支內(nèi)容推送的遠程新的master分支脂信,還會把本地
//的master分支和遠程的master分支關(guān)聯(lián)起來癣蟋,在以后的推送或者拉取時就可以簡化命令。
從現(xiàn)在起只要本地做了修改狰闪,只需要執(zhí)行如下命令疯搅,便可以將本地修改提交到遠程庫
git push origin master
從遠程庫克隆項目
git clone git@github.com:michaelliao/learngit.git
// git@后跟的是在github上的項目地址(ssh)
//還可以跟https地址,但是速度回相對變慢
分支管理
查看分支:
git branch
創(chuàng)建分支:
git branch <name>
切換分支:
git checkout <name>
創(chuàng)建+切換分支:
git checkout -b <name>
合并某分支到當(dāng)前分支:
git merge <name>
//使用Fast forward模式進行合并埋泵,無合并記錄
刪除分支:
git branch -d <name>
git merge --no-ff -m "merge with no-ff" <name>
//準備合并dev分支幔欧,請注意--no-ff參數(shù),表示禁用Fast forward丽声,有合并記錄
保存當(dāng)前現(xiàn)場的工作狀態(tài)礁蔗,(適用于臨時解決其他bug需要新建一個分支的情況)
git stash // 保存當(dāng)前現(xiàn)場,使用git status就不會看到有任何需要提交的文件
查看保存的現(xiàn)場列表
git stash list
恢復(fù)到制定的現(xiàn)場
git stash apply 現(xiàn)場列表的某個列的名稱
但是執(zhí)行上面的命令后雁社,stash并沒有刪除需要執(zhí)行如下命令刪除
git stash pop 現(xiàn)場列表的某個列的名稱
如果只有一個保存現(xiàn)場
git stash pop // 即可實現(xiàn)恢復(fù)現(xiàn)場并刪除列表信息
將遠程主機的某個分支拉去過來與本地分支合并
git pull <遠程主機名> <遠程分支名>:<本地分支名>
git pull origin master:brantest
拉取遠程主機的內(nèi)容
git fetch <遠程主機名> <分支名>// 拉取分支brantest分支的內(nèi)容
git fetch origin dev // 拉取分支dev上的內(nèi)容
git fetch //拉取所有的分支更新
windows中的換行符為 CRLF浴井, 而在linux下的換行符為LF,所以在執(zhí)行add . 時出現(xiàn)提示霉撵,解決辦法:
git config --global core.autocrlf false //禁用自動轉(zhuǎn)換