Git常用指令
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
Git常用指令