git init
:會在本地當前目錄下建立一個git倉庫git clone https://github.com/username/a.git
:下載遠程庫到本地git remote add origin git@server-name:path/repo-name.git
:關聯一個遠程倉庫,前提是已經在gitlab上建立了一個倉庫git push -u origin master
:第一次把本地工程推送到遠程倉庫,以後直接git push
便可git log
查看提交歷史,可肯定回退到哪一個版本git log --pretty=oneline
查看提交歷史,更好看而已git reflog
查看已執行的命令歷史,可肯定回退到哪一個版本三種狀態+遠程庫:html
執行 add 添加命令後:git
執行 commit 提交命令後:github
git checkout -- fname
)git add fname
後,處於暫存區(撤銷:git reset HEAD fname
)git commit -m "desc"
後,提交到了分支(撤銷:git reset --hard commit_id
)git push
後,代碼就推到了遠程庫git checkout -- fname
,就回到了和版本號同樣的狀態git checkout -- fname
就回到了添加到暫存區後的狀態agit reset HEAD fname
,就把暫存區的修改撤銷了,回退到工做區狀態;再執行git checkout -- fname
就撤銷了工做區的修改,回到了和版本庫同樣的狀態git reset --hard commit_id
就撤銷了提交,回退到了暫存區狀態$ git log // 查看歷史版本號(每條歷史記錄的第一行commit後的是版本號,拷貝前5個字符以上便可) $ git reset --hard 【版本號】 // 回滾
示例:緩存
$ git log commit 8a2b2261128388b3a84bc82aae46d7fbc47510df (HEAD -> lsy-practise, origin/lsy-practise) Merge: 44950c2 1f16ec9 Author: liushunyun <liushunyun@58.com> Date: Tue Aug 13 16:25:46 2019 +0800 刪除拆分前的代碼 commit 44950c242585dbc925ed8f0e4da3d96383ecfb22 Author: liushunyun <liushunyun@58.com> Date: Sun Aug 11 10:25:28 2019 +0800 test commit 1f16ec94f8a5ab42e6b3d03bc6ba27720a3b55c7 (origin/master, origin/HEAD, master) Merge: 1c56749 6b202fe Author: root <root@bjm6-19-154.58os.org> Date: Fri Aug 9 11:35:34 2019 +0800 version:4.3.16.0,branchName:20190809112714076_release_9683_etongzhen-sandbox,integrations:upload_img_fix
回滾:服務器
git reset --hard 8a2b22611 // 回滾到最近提交的那次,commit後的是版本號,取前邊5個以上的字符便可
rm fname
:從工做區刪除,撤銷刪除:git checkout -- fname
git rm fname
:從版本庫中刪除文件,完全刪除:git commit
;撤銷刪除:git reset HEAD fname
,再git checkout -- b
便可徹底恢復git checkout -- fname
:把誤刪的文件恢復到最新版本,實際上是用版本庫裏的版本替換工做區的版本,不管工做區是修改仍是刪除,均可以「一鍵還原」git branch dev
:建立dev分支git checkout dev
:切換到dev分支git checkout -b dev
:建立並切換到dev分支(從當前分支複製出dev新分支,注意push後再切換其餘分支)git branch
:查看全部分支和當前分支git checkout -- fname
:注意:
是撤銷工做區的修改git merge dev
:把dev分支合併到當前分支(如當前是master分支)git branch -d dev
:刪除dev分支git push --set-upstream origin dev
:把本地分支push到遠程倉庫git checkout -b 本地分支名 origin/遠程分支名
:從遠程倉庫拉取一條本地不存在的分支gitlab
master
分支建立新分支的dev2
進行開發:git checkout -b dev2
dev2
push到遠程git push origin dev2
dev2
git pull
There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details. git pull <remote> <branch> If you wish to set tracking information for this branch you can do so with: git branch --set-upstream-to=origin/<branch> dev2 通過驗證,當前的分支並無和本地分支關聯,根據提示進行下一步:
git branch --set-upstream-to=origin/dev2
git pull
dev2
分支拉到本地(本地以前沒有該分支)git checkout -b dev2 origin/dev2 fetch
若是成功,就會在本地自動建立新分支dev2
,並自動切換奧分支dev2
this
若是拉取不成功,須要執行 git fetch ;而後再執行上面的命令3d
參考:git從已有分支拉新分支開發日誌
注意:
在分支上修改並commit後,當切換到master分支後是看不到,必須合併分支後才能夠。
示例:
- 查看系統config:`git config --system --list` - 查看當前用戶(global)配置:`git config --global --list` - 查看當前倉庫配置:`git config --local --list`
查看當前倉庫的用戶名、郵箱:
git config user.name git config user.email
配置當前倉庫的用戶名、郵箱:
git config --local user.name zhangsan git config --local user.email zhang@126.com
git remote -v
即遠程git的服務器地址git remote show origin
參考:https://www.liaoxuefeng.com/w...
參考:https://git-scm.com/book/zh/v...