git tag 以及git
一、先說收獲吧
1. git bash 在windows上
類似于linux的bash提供的shell命令行窗口,可以執行很多linux命令,cd pwd ls vim cat touch mkdir,還可以用正則匹配查看標簽。相當于在windows上裝了一個小的linux。git init myproject可以創建一個.git管理的目錄
2. git log --oneline
方便查看最近的提交的HEAD、tag、origin情況
3. working tree
翻譯過來是工作樹,應該是當前在哪個分支上,修改了什么,或者沒有修改什么,這些目錄結構和文件結構的一個架構像一個樹一樣。所以叫當前的工作的樹,working tree
4. 查看標簽的詳細信息
git show v0.0
5. 修改分支名稱
git branch -m cs abc
6. 查看當前的git管理的狀況
git status
7. git管理的概念
version control,核心是這些都是在本地各種各樣操作,同步不同步origin,包括從不從origin拉代碼,都是很多操作中的一個而已,要求就是網絡是通的。包括config user.name user.email其實都是本地是活。所以git的核心功能就是在本地管理一個項目目錄。所以git的origin倉庫相當于一個云盤而已,為多個開發者或者維護這個項目的人提供一個中間的上傳和下載項目目錄的中間存儲而已。所以git的重點是在本地操作,和云盤只是一個上傳和下載的關系,所以叫代碼托管平臺,而不是代碼開發平臺。git的80%可能更多都是在本地的操作。
8. 一個本地目錄可以關聯多個遠端倉庫,比如github、gitee
一、git tag
1. 查看最近的tag
git log --oneline
2. 指定提交,為這次提交打標簽
git tag v1.0 commit_hash_string
3. 給指定提交,加注釋標簽
git tag v0.0 -a -m '啟動項目' commit_hash_string
4. 查看標簽
4.1 普通查看
git tag
4.2 正則匹配查看標簽
git tag -l 'v1*'
5. 查看標簽的詳細信息
git show v0.0
6. 本地庫推送origin庫(git push不會把tag推送到origin庫,需要單獨push tag)
6.1 查看遠程庫的信息
git remote -v
6.2 推送單個標簽到origin庫
git push origin v0.0
6.3 推送所有標簽到origin庫
git push origin --tags
7. 刪除標簽
7.1 刪除本地標簽
git tag -d v1.8
7.2 刪除origin標簽
git push origin -d v1.8
二、說一說git
1. 介紹
git的bash命令行好像用起來和Linux命令差不多,不是windows的那種,而是Linux風格的那種。可以用pwd, ls,還可以用ls -a,這幾個命令在windows的cmd都用不了
這樣就適合系統管理員了。要熟悉命令,可能用起來比vscode點點點可能還要更舒服,前提是熟練的話。它會管理這個目錄,還有snapshot功能
首先要明白的是,這個命令看著簡單,字很短。可能會給人一種錯覺,這個不是特別麻煩,好像很簡單。就是git clone,git pull,git push,git checkout這些。其實這個工具很強大,用的一般,工作起來很多東西就要手動去搞,或者靠眼睛和記憶力去做。比如哪個版本改了什么,哪個分支哪次提交又怎么樣了,合并分支解決沖突等等,很多細節在里面。但是用的好的話,可以省很多力氣,也增加容錯,不靠記憶力和經驗去做。
具體知識點就邊看邊總結吧
git 是干嘛的?官方視頻里面說的是version control,翻譯過來是版本控制,但是從英文的角度來說,好像更能感受到設計這個工具干嘛。
you can version-control items just on your desktop, just with a single piece of software available at the command line. 用個命令行就可以控制
git init myproject 可以創建一個目錄
cd myproject
git add .
git commit -m "importing all the code" 可以permanently records a historical
git checkout master
git commit -a -m "my new logo"
git checkout -b danasfeature
git commit -a -m "my feature code"
git push origin danasfeature
git pull
git merge danasfeature
git add -p myreport.markdown
git commit -m "added latest statistics"
git log --graph --decorate --abbrev-commit --all --pretty=oneline
git config --global user.name "Dana Devops"
git config --global user.email "danadevops@gmail.com"
git init project1
cd project1
create file1.txt
git add file1.txt
git commit -m "my first commit"
git的副標題是everything-is-local,意思應該是push和pull只是和遠程倉庫交互的,大部分的作用是在本地對project directory進行各種控制和snapshot和reviewz
這個username和email也是主要在本地來記錄commit的提交記錄的,和origin倉庫交互只是終端手段而已。git version control system
2. 工作區也叫文件樹
git status等命令給出的信息好像都有個什么什么tree,有時候不知道是啥意思。英文語境下好像不這么叫吧,work zone,或者啥,好像是叫什么什么樹。所以把工作區稱為文件樹可能貼合它的實際情況吧。git的命令在windows上也可以用git --help。然后常用的命令都有解釋,和linux上差不多。而且這個工作區,看git上的提示信息好像都是說working tree,比如下圖中的參數解釋中,也多提到working tree,而不是工作區,翻譯過來應該叫工作樹。在windows上不能用man git,而能用下面列出的git help -a
3. .git這個隱藏目錄
4. 將一個文件恢復
5. 將一個文件恢復到指定的committed_hashid
git checkout committed_hashid file_name
如圖:
6. 已經committed的怎么撤銷
7. 分支管理
8. 修改分支名稱
git branch -m cs abc # -m 應該是modify