前期準備html
// 註冊github帳號 // 地址:https://github.com/ // 配置密匙 // 地址:https://jingyan.baidu.com/article/414eccf6a330926b431f0ac6.html // 建立倉庫git-test // git/https 切換到git模式(避免每次重複密匙驗證) // 確保已經安裝git bash,並打開
建立本地倉庫git
// 在本地建立文件夾 mkdir git-test // 複製代碼,如如下示例,粘貼到git bash運行 echo "# git-test" >> README.md git init git add README.md git commit -m "first commit" git remote add origin git@github.com:webjimmylau/git-test.git git push -u origin master
建立分支github
// 最好統一先在github上建立分支 // 而後纔在本地git pull分支
文件夾操做web
clear // 清空代碼 pwd // 顯示當前目錄 mkdir fileName // 建立文件夾 cd fileName // 進入文件夾 git init // 把這個目錄變成git能夠管理的倉庫
文件操做bash
echo xxx >> text.txt // 建立文件並更改或直接更改文件內容 rm text.txt // 刪除文件 cat text.txt // 查看文件內容 git diff text.txt // 查看文件修改的內容 git diff HEAD -- text.txt // 查看工做區和版本庫裏面最新版本的區別 // 新增到暫存區 git add -u // 新增、修改 git add . // 修改、刪除 git add -A // 新增、修改、刪除、替換 // git clean 刪除未跟蹤文件 git clean -f // 刪除 untracked files git clean -fd // 連 untracked 的目錄也一塊兒刪掉 git clean -xfd // 連 gitignore 的untrack 文件/目錄也一塊兒刪掉, // 慎用,通常這個是用來刪掉編譯出來的 .o之類的文件用的 // 在用上述 git clean 前,防止重要文件被誤刪, // 強烈建議加上 -n 參數來先看看會刪掉哪些文件 git clean -nf git clean -nfd git clean -nxfd
文件撤銷app
// 撤銷本地 git checkout -- filename git checkout . // 撤銷暫存區 git reset HEAD filename git reset HDAD . // 撤銷本地倉庫 git reset commit-id // 保留(撤回前的分支提交的更改)在本地 git reset --hard commit-id // 不保留
提交到暫存區、本地倉庫、遠程倉庫url
git status // 查看是否還有文件未提交 git add -A // 添加全部文件到暫存區 git commit -m 'xxx' // 把暫存區的文件提交到倉庫 git pull // 拉取遠程倉庫 git push origin master // 把本地master分支的最新修改推送到github遠程倉庫上
遠程倉庫操做code
git clone git-test(url) // 克隆git-test項目 git remote add origin git-test(url) // 關聯一個遠程庫 git pull origin master // 拉取成功 而後手動處理衝突 git branch --set-upstream master // 解決分支衝突 git push -u origin master // 把本地master分支和遠程master分支關聯起來 // 並把本地master分支的最新修改推送到github上 git push origin master // 把本地master分支的最新修改推送到github上 git push origin :dev // 在遠程分支上刪除dev分支 git remote // 查看遠程庫的信息 如:origin git remote -v // 查看遠程庫的詳細信息 如:origin
分支操做htm
git branch // 查看分支 *表明當前分支 git branch dev // 建立分支 git branch -d dev // 刪除分支 git branch -D dev // 強行刪除分支 git checkout dev // 切換分支 git checkout -b dev // 建立並切換分支 git checkout -b dev origin/dev // 建立並拉取遠程分支dev並切換分支 git merge dev // 在當前分支上合併dev內容 git merge –no-ff -m 'xxx' dev // 合併分支,禁用‘Fast forward’模式,刪除後還能保留分支信息
版本查看rem
git reflog // 查看所有版本(包括回滾後看不到的版本、誤操做等) git log // 詳細查看分支提交歷史(當前版本的祖先版本) git log --pretty=oneline // 簡單查看分支提交歷史(去除做者和日期) git log --pretty=oneline --abbrev-commit // 查看精簡分支提交歷史(縮小版本號長度) git log --graph // 查看分支刪除信息
版本回滾
git reset --hard HEAD^ // 回滾到上一個版本 git reset --hard HEAD~100 // 回滾到上100個版本 git reset --hard scd51f // 回滾到某版本
儲藏操做
git stash // 將當前的工做現場隱藏起來 git stash list // 查看隱藏的工做現場 git stash apply // 恢復工做現場 git stash drop // 刪除隱藏的一條工做現場記錄 git stash pop // 恢復並刪除
一、建立/修改/提交
cd D: // 進入D盤 mkdir www // 建立文件夾www cd www // 進入文件夾www mkdir git-test // 建立文件夾git-test cd git-test // 進入文件夾git-test pwd // 顯示當前目錄 git init // 把這個目錄變成git能夠管理的倉庫 echo 111 >> readme.txt // 建立readme.txt文件 並添加內容111 git add readme.txt // 添加readme.txt文件到暫存區裏面去 git commit -m "add file" // 把暫存區的文件提交到倉庫 git status // 查看是否還有文件未提交 echo 222 >> readme.txt // 建立readme.txt文件並更改或直接更改readme.txt文件內容 git status // 查看是否還有文件未提交 git diff readme.txt // 查看readme.txt修改了什麼內容 git add readme.txt // 添加readme.txt文件到暫存區裏面去 git commit -m "change file" // 把暫存區裏面的內容提交到倉庫
二、版本回退
echo 333 >> readme.txt git add readme.txt git commit -m "change file" git log // 查看版本歷史記錄 git log --pretty=oneline // 查看精簡版本歷史記錄 git reset --hard HEAD^ // 退回到上一個版本 ^上一個 ^^上兩個 ~100上100個 cat readme.txt // 查看readme.txt內容 git log // 查看版本歷史記錄,被覆蓋的最新版本333已經看不到,按q退出查詢 git reflog // 能夠看到333內容的版本信息和對應的版本號 git reset --hard xxxxxx // 恢復到333內容的版本 cat readme.txt // 查看readme.txt內容
三、理解工做區與暫存區的區別
echo 444 >> readme.txt // 修改文件 echo test >> test.txt // 新增文件 git add readme.txt // 添加文件到暫存區 git add test.txt // 添加文件到暫存區 git commit -m "add files" // 把暫存區的文件提交到倉庫
四、撤銷修改
echo 555 >> readme.txt // 修改文件 cat readme.txt // 查看文件 git checkout -- readme.txt // 把文件在工做區作的修改所有撤銷 git 666 >> readme.txt // 修改文件 git add readme.txt // 添加文件到暫存區 echo 777 >> readme.txt // 修改文件 cat readme.txt // 查看文件 git checkout -- readme.txt // 把文件暫存區的修改保留,把工做區爲修改所有撤銷 cat readme.txt // 666還有,777不見了
五、刪除文件
echo b >> b.txt // 新建文件 git add b.txt // 添加文件到暫存區 git commit -m "change file" // 提交暫存區的文件到倉庫 rm b.txt // 刪除文件 git status // 查看文件狀態 git checkout -- b.txt // 撤銷刪除文件
六、遠程倉庫
// 如何添加遠程庫 git remote add origin git-test(url) git push -u origin master // 把本地master分支和遠程master分支關聯起來 // 並把本地master分支的最新修改推送到github上 git push origin master // 把本地master分支的最新修改推送到github上 // 如何從遠程克隆 git clone git-test(url)
七、建立與合併分支
git branch // 查看分支 *表明當前分支 git branch dev // 建立分支 git checkout dev // 切換分支 git checkout -b dev // 建立並切換分支 cat readme.txt echo 777 >> readme.txt cat readme.txt git add readme.txt git commit -m 'xxx' git checkout master cat readme.txt // 只有以前的內容666 git merge dev // 在當前分支上合併dev內容 cat readme.txt // master上多了內容777 git branch -d dev // 刪除dev分支 // 如何解決衝突 git merge fenzhi1 // 刪除衝突,再提交 // 分支管理策略 git merge –no-ff -m 'text' dev // 合併分支,禁用‘Fast forward’模式,刪除後還能保留分支信息 git branch -d dev git log --graph --pretty=oneline --abbrev-commit // 查詢被刪除的分支信息
八、bug分支
git status // 有看到新增和修改的文件 git stash // 將當前的工做現場隱藏起來 git status // 隱藏以後,查看狀態,是乾淨的 git checkout -b issue-404 // 建立和切換分支到issue-404 git add readme.txt // 把文件添加到暫存區 git commit -m 'fix some bug' // 把暫存區的文件提交到倉庫 git checkout master // 切換分支到master git merge --no-ff -m 'merge issue-404' issue-404 // 合併issue-404分支 cat readme.txt // 當前master分支能夠看到issue-404分支的內容,徹底一致 git branch -d issue-404 // 在master分支上刪除issue-404臨時分支 git checkout dev // 切換到dev分支 git status // 查看狀態,仍是乾淨的 git stash list // 查看隱藏的工做現場 git stash apply // 恢復工做現場 git stash drop // 刪除隱藏的一條工做現場記錄 git stash pop // 恢復並刪除
九、多人協做
git clone git-test(url) // 克隆git-test項目 git pull origin master // 拉取master分支 git push origin master // 推送master分支 git pull origin dev // 拉取失敗 git branch --set-upstream dev // 解決分支衝突 git pull origin dev // 拉取成功 而後手動處理衝突 git push origin dev // 推送dev分支
ps:歡迎指出問題或補充。。