Git使用及代碼倉庫介紹
目錄
- 1.初始化Git
- 2.建立忽略檔案
- 3.把遠端repository加到本地
- 4.将工作區代碼送出到本地暫存區
- 5.配置使用者名郵箱
- 6.送出暫存區代碼到本地代碼倉庫
- 7.從遠端倉庫拉取代碼到本地倉庫
- 8.送出本地倉庫代碼到遠端倉庫
- 9.硬恢複到指定送出版本
- 9.1 本地倉庫強制覆寫遠端倉庫
- 10.導出送出修改日志
- 11.檢視本地分支與遠端分支
- 12.下載下傳遠端分支
- 13.找回暫存區裡丢失的代碼
- 14 修改最近一次commit的注釋
- 15.修改作者名稱
- 16. git tag的用法
- 16.1.git的tag功能
- 16.2.建立tag
- 16.3.檢視tag
- 17.git checkout -- file 可以丢棄工作區的修改
- 18. git清除本地使用者名密碼
- 19.把目前送出到git本地倉庫的代碼推送到遠端主機origin的Development分支上
- 20. git remote: HTTP Basic: Access denied 錯誤解決辦法
- 21. 設定本地ssh檔案
Git是一個很強大的代碼版本管理工具,在Git的使用過程中,不斷學習積累Git的指令行及其作用,在本篇文章中記錄了筆者使用過程的積累,以後還會持續更新。代碼倉庫分為分為工作區 暫存區 本地倉庫 遠端倉庫 四個區,主要工作流程為暫存,拉取,恢複暫存,合并(如果有沖突),送出,推送
git init
touch .gitignore(這裡面可以寫一些忽略檔案,git add/commit/push的時候不會上傳忽略檔案,可以參照其它項目)
git remote add origin 遠端位址
git add --all
git add .
git config user.name "JerryMouseLi"
git config user.email "[email protected]"
檢視使用者名以及郵件
+ 檢視目前登入賬号:
git config user.name
+ 檢視目前登入郵箱:
git config user.email
git commit -m "送出備注"
git pull origin master
pull包含了fetch跟merge将本地倉庫的變化與遠端倉庫變化,同名檔案合并。這裡有沖突需要解決沖突。
git push origin master
git reset --hard commit_id
`
git push origin master --force
git log --pretty=format:"%ai , %an: %s" --since=“100 day ago” >> ~/Desktop/commit.log
git log --pretty=format:"%ai , %an: %s" >> ~/Desktop/Readme.log
最終采用
git log --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:"%ad , %an: %s" >> ~/Desktop/Readme.log
選項 說明
%H 送出對象(commit)的完整哈希字串
%h 送出對象的簡短哈希字串
%T 樹對象(tree)的完整哈希字串
%t 樹對象的簡短哈希字串
%P 父對象(parent)的完整哈希字串
%p 父對象的簡短哈希字串
%an 作者(author)的名字
%ae 作者的電子郵件位址
%ad 作者修訂日期(可以用 -date= 選項定制格式)
%ar 作者修訂日期,按多久以前的方式顯示
%cn 送出者(committer)的名字
%ce 送出者的電子郵件位址
%cd 送出日期
%cr 送出日期,按多久以前的方式顯示
%s 送出說明
git branch -a 檢視所有分支
git branch -r檢視遠端分支
git branch 檢視分支
git clone -b CQDemo https://git.dev.tencent.com/xxx/xxx.git
git fsck --lost-found //找回git add過但是已經不存在檔案中的内容
git commit --amend
commit提供了一個--amend參數,可以修改最後一次送出的資訊.但是如果你已經push過了,那麼其曆史最後一次,永遠也不能修改了。
主要我用來導出git日志的時候用
git commit --amend --author "xw [email protected]"
// 設定全局
git config --global user.name "Author Name"
git config --global user.email "Author Email"
// 或者設定本地項目庫配置
git config user.name "Author Name"
git config user.email "Author Email"
我們常常在代碼封闆時,使用git 建立一個tag ,這樣一個不可修改的曆史代碼版本就像被我們封存起來一樣,不論是運維釋出拉取,或者以後的代碼版本管理,都是十分友善的
git 下打标簽其實有2種情況
- 輕量級的:它其實是一個獨立的分支,或者說是一個不可變的分支.指向特定送出對象的引用
-
帶附注的:實際上是存儲在倉庫中的一個獨立對象,它有自身的校驗和資訊,包含着标簽的名字,标簽說明,标簽本身也允許使用 GNU Privacy Guard (GPG) 來簽署或驗證,電子郵件位址和日期,一般我們都建議使用含附注型的标簽,以便保留相關資訊
是以我們推薦使用第二種标簽形式
git tag -a V1.2 -m 'release 1.2'
上面的指令我們成功建立了本地一個版本 V1.2 ,并且添加了附注資訊 'release 1.2'
git tag
要顯示附注資訊,我們需要用 show 指令來檢視
git show V1.2
但是目前這個标簽僅僅是送出到了本地git倉庫.如何同步到遠端代碼庫
git push origin --tags
如果剛剛同步上去,你缺發現一個緻命bug ,需要重新打版本,現在還為時不晚.
git tag -d V1.2
到這一步我們隻是删除了本地 V1.2的版本,可是線上V1.2的版本還是存在,如何辦?這時我們可以推送的空的同名版本到線下,達到删除線上版本的目标:
git push origin :refs/tags/V1.2
如何擷取遠端版本?
git fetch origin tag V1.2
這樣我們可以精準拉取指定的某一個版本.适用于運維同學部署指定版本.
git checkout -- readme.txt
git config --system --unset credential.helper
git push origin Development
問題描述:
git push 報 HTTP Basic: Access denied 錯誤
原因:本地git配置的使用者名、密碼與gitlabs上注冊的使用者名、密碼不一緻。
解決方案:
- 如果賬号密碼有變動 用這個指令 git config –system –unset credential.helper 重新輸入賬号密碼 應該就能解決了
-
如果用了第一個指令 還不能解決問題那麼 用這個指令:
git config –global http.emptyAuth true
3.如果以上兩個方法不起作用,那麼采用以下方法:
進入控制台》使用者賬号》憑據管理器?windows憑據》普通憑據,在裡面找到git,點開編輯密碼,更新為最新密碼之後就可以正常操作了。
ssh-keygen -t rsa -C "[email protected]"
拷貝*.pub檔案ssh-rsa開頭
ssh方式連接配接遠端git服務
ssh -T [email protected]
注意必須在~/.ssh檔案夾下操作
The Sky is the limit.