Git 操作筆記

創(chuàng)建新文件夾mkdir filename 然后創(chuàng)建新倉(cāng)庫(kù):

git init

從遠(yuǎn)程庫(kù)克?。?/p>

git clone git@github.com:michaelliao/gitskills.git

添加和提交:

1. git add *
2. git add filename
git commit -m "commit messages" //改動(dòng)提交到了 HEAD暫存區(qū),但是還沒到你的遠(yuǎn)端倉(cāng)庫(kù)

查看當(dāng)前文件狀態(tài):

git status

如果還沒有克隆現(xiàn)有倉(cāng)庫(kù),使用命令:

git remote add origin git@github.com:michaelliao/learngit.git

主分支創(chuàng)建并且換到dev分支:

git checkout -b dev //相當(dāng)于這兩步   1.git branch dev    2.git checkout dev

同步遠(yuǎn)程分支

git pull orign dev

修改文件后提交到本地dev分支

git commit -am "修改文件"  //或者git commit -a -m "修改文件"

合并分支:

git merge dev

在合并改動(dòng)之前,可以使用如下命令查看:

git diff <source_branch> <target_branch>

合并沖突時(shí),如有沖突,解決沖突后,重新提交:

git add filename
git commit -m "solve conflict" //標(biāo)記沖突

切換到主分支:

git checkout master

刪除dev分支:

git branch -d dev

刪除遠(yuǎn)程dev分支:

git push origin -d dev

推送改動(dòng):

git push -u origin master

查看日志:

git log
git log --pretty=oneline

回退版本:

git commit --amend  // 撤銷上一次提交  并講暫存區(qū)文件重新提交
git checkout --<file> // 拉取暫存區(qū)文件 并將其替換成工作區(qū)文件
git reset HEAD  --<file>  // 拉取最近一次提交到版本庫(kù)的文件到暫存區(qū)  改操作不影響工作區(qū)
git reset --hard 1094a // 1094a為日志版本id

日志回歸,查看命令歷史:

git relog

更新本地倉(cāng)庫(kù)至最新改動(dòng):

git pull

標(biāo)簽
在Git中打標(biāo)簽非常簡(jiǎn)單,首先,切換到需要打標(biāo)簽的分支上,然后,敲命令git tag <name>就可以打一個(gè)新標(biāo)簽

git tag v1.0

查看所有標(biāo)簽:

git tag

默認(rèn)標(biāo)簽是打在最新提交的commit上的。有時(shí)候,如果忘了打標(biāo)簽,比如,現(xiàn)在已經(jīng)是周五了,但應(yīng)該在周一打的標(biāo)簽沒有打,怎么辦?

方法是找到歷史提交的commit id,然后打上就可以了

$ git log --pretty=oneline --abbrev-commit
12a631b (HEAD -> master, tag: v1.0, origin/master) merged bug fix 101
4c805e2 fix bug 101
e1e9c68 merge with no-ff
f52c633 add merge

比方說要對(duì)add merge這次提交打標(biāo)簽,它對(duì)應(yīng)的commit id是f52c633,敲入命令:

git tag v0.9 f52c633

注意,標(biāo)簽不是按時(shí)間順序列出,而是按字母排序的??梢杂胓it show <tagname>查看標(biāo)簽信息:

$ git show v0.9
commit f52c63349bc3c1593499807e5c8e972b82c8f286 (tag: v0.9)
Author: Michael Liao <askxuefeng@gmail.com>
Date:   Fri May 18 21:56:54 2018 +0800

    add merge

diff --git a/readme.txt b/readme.txt
...

創(chuàng)建帶有說明的標(biāo)簽:

git tag -a v0.1 -m "version 0.1 released" 1094adb

刪除標(biāo)簽:

git tag -d v0.1

注意:標(biāo)簽總是和某個(gè)commit掛鉤。如果這個(gè)commit既出現(xiàn)在master分支,又出現(xiàn)在dev分支,那么在這兩個(gè)分支上都可以看到這個(gè)標(biāo)簽

將本地標(biāo)簽推送到遠(yuǎn)程:

git push origin tag_name // tag_name為標(biāo)簽名
//Git 的推送和刪除遠(yuǎn)程標(biāo)簽命令是相同的,刪除操作實(shí)際上就是推送空的源標(biāo)簽

如果需要對(duì)tag指定的版本進(jìn)行修改,我們可以為其建立一個(gè)分支,其指令如下:

git checkout -b branch_name tag_name // branch_name:分支名 tag_name:標(biāo)簽名

從遠(yuǎn)程克隆分支:

git clone remote_repo -b branch_name // remote_repo:遠(yuǎn)程倉(cāng)庫(kù)路徑 branch_name:遠(yuǎn)程分支名

遇到的問題
1.npm run -s precommit (node v8.9.3)

huideMacBook-Pro:graph huiyu$ git commit -m “更新代碼” 
husky > npm run -s precommit (node v8.9.3)

fatal: Not a git repository: ‘.git’

husky > pre-commit hook failed (add –no-verify to bypass)

解決:

git commit -m “更新代碼” -n
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,849評(píng)論 4 54
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,863評(píng)論 9 163
  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,218評(píng)論 5 147
  • Git 命令行學(xué)習(xí)筆記 Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來...
    sunnyghx閱讀 4,163評(píng)論 0 11
  • 不知道大家發(fā)現(xiàn)這么一個(gè)現(xiàn)象沒,就是人越大,理想會(huì)慢慢變成夢(mèng)想最后化成夢(mèng),隨往事煙消云散。最近聽曲老師講黃帝內(nèi)經(jīng),給...
    艾米熊的幻想閱讀 298評(píng)論 0 0

友情鏈接更多精彩內(nèi)容