Git常用指令

1、 origin指向的就是你本地的代碼庫託管在Github上的版本。

origin就是一個名字,它是在你clone一個託管在Github上代碼庫時,git爲你默認創建的指向這個遠程代碼庫的標籤

2、 配置git工程的config

1)、進入到工程:D:\workbench\git\abc-marketing\marketing-admin

2)、git config --list

3)、配置用戶名和郵箱

git config --global user.name andy.wangmz

git config --global user.email [email protected]

git config --global color.ui true(git顯示顏色)

4)、配置別名(.gitconfig)

git config --global alias.st status

3、 創建git倉庫

創建新的文件夾,git init,則當前文件夾新增了.git文件夾

4、 git add

把文件添加到倉庫

git commit -m "write a readme file"

把文件提交到倉庫

git status

查看當前倉庫的狀態

git diff readme.txt

查看工作區和版本庫裏最新版本的區別:

git diff HEAD -- readme.txt

場景1: 丟棄工作區的修改

git checkout -- readme.txt

git checkout -- file命令中的--很重要,沒有--,就變成了“切換到另一個分支”的命令

場景2: 丟棄暫存區的修改

git reset HEAD <file>

再按場景1操作。

場景3: 已經提交了不合適的修改到版本庫是,撤銷本次提交。

git log查看提交歷史

git reflog查看命令歷史,以便回到未來的哪個版本

還原到主幹的代碼(此操作會把本地的變更修改了,慎用)

git reset --hard HEAD

git reset --hard HEAD~1(回滾到上一個版本)

git reset --hard commit_id

5、 分支管理

1)、 查看分支

git branch -r 查看遠程分支

git branch 查看本地分支

git branch -a 查看所有分支

git remote -v 查看遠程倉庫

2)、 創建+切換分支(默認當前分支指向新創建的分支)

git checkout -b test

相當於以下2條指令:

創建 git branch test

切換 git checkout test

創建遠程的origin的dev分支到本地

git checkout -b dev origin/dev

3)、 工作現場隱藏起來

git stash

恢復

git stash apply

刪除

git stash drop

恢復並刪除stash內容

git stash pop

查看stash內容

git stash list

4)、 刪除分支

git branch -d test

git branch -D test(如果分支未merge,刪除時會提示,強制刪除-D)

5)、 分支merge

git merge test

合併指定分支到當前分支

不使用Fast forward模式

git merge --no-ff -m "merge with no-ff" test

6)、 分支策略

在實際開發中,我們應該按照幾個基本原則進行分支管理:

首先,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;

那在哪幹活呢?幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發佈時,

                                再把dev分支合併到master上,在master分支發佈1.0版本;

你和你的小夥伴們每個人都在dev分支上幹活,每個人都有自己的分支,時不時地往dev分支上合併就可以了。

6、 刪除文件

1) rm刪除本地文件

2)、 git rm test.txt

git commit -m ""

誤刪除,回退

git checkout -- test.txt

7、 遠程倉庫

1)、 本地倉庫與遠程倉庫管理

git remote add origin https://gitlab.dadaabc.us/dadaabc/abc-marketing.git

遠程倉庫的名字叫origin,這是Git的默認叫法。

2)、 本地庫的內容推送到遠程庫

git push -u origin master

如果遠程庫是空的,第一次推送master分支是,加上-u參數。

git push origin master

本地master分支的最新修改推送到git倉庫的origin。

8、 衝突解決

1)、 git merge test

衝突,必須手動解決衝突再提交。

2)、 git status

git告訴我們衝突文件

3)、 查看衝突文件,手工解決衝突。

4)、 git add和git commit

5)、 查看合併情況

git log --graph --pretty=oneline --abbrev-commit

9、 推送到遠程倉庫

1)、 git push origin test

2)、 發生衝突,本地合併,解決衝突,再推送

git pull

3)、 git pull 也失敗,可能沒有指定本地dev分支與遠程origin/dev分支的鏈接,根據提示,設置dev和origin/dev的鏈接

git branch --set-upstream-to=origin/dev dev

10、 Rebase

1)、 git rebase

rebase操作的特點:把分叉的提交歷史“整理”成一條直線,看上去更直觀。缺點是本地的分叉提交已經被修改過了。

11、 打標籤

1)、 創建標籤

git tag v1.0

創建帶說明的標籤(-a指定標籤名,-m指定說明文字)

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

查看說明文字

git show v0.1

2)、 查看標籤(不是按時間順序列出,而是按字母排序)

git tag

3)、 標籤忘記大了

git log --pretty=oneline --abbrev-commit

git tag v0.9 commit_id

4)、 刪除標籤

git tag -d v0.1

遠程刪除

git push origin :refs/tags/v0.9

5)、 推送標籤到遠程

git push origin v0.1

一次性推送全部尚未推送到遠程的本地標籤

git push origin --tags

12、 忽略特殊文件

1)、 .gitignore:把要忽略的文件名填進去,Git會自動忽略這些文件。

2)、 .gitignore忽略文件,強制添加到Git

git add -f App.class

3)、 找出不能添加的原因

git check-ignore -v App.class

13、 分支比較

1)、 本地分支與遠程分支比較(顯示差異的細節)

git diff <local branch> <remote>/<remote branch>

2)、 本地分支與遠程分支比較(統計文件的改動)

git diff --stat <local branch> <remote>/<remote branch>

3)、 本地分支與遠程分支比較(顯示遠程有而本地沒有的commit信息)

git log <local branch> <remote>/<remote branch>

4)、 更新本地的遠程分支

git fetch origin


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章