工做總結-git的使用

git中使用ssh key

git中clone項目有兩種方式:https和ssh
https:無論是誰,拿到url隨便clone,可是在push的時候須要驗證用戶名和密碼
ssh:clone項目你必須是擁有者或者管理員,並且須要在clone前添加SSH Key。SSH在push的時候,是不須要輸入用戶名的,若是配置SSH Key的時候設置了密碼,則須要輸入密碼,不然是不須要輸入密碼的

git中使用SSH Key的步驟:

1.檢查電腦是否存在SSH Keygit

cd ~/.ssh
ls
若是存在id_rsa.pub或id_
dsa.pub文件,說明文件已經存在,跳過建立SSH Key步驟

2.建立SSH Keygithub

ssh -keygen -t rasa -C 「your_email@example.com」

3.查看SSH Key服務器

cat ~/.ssh/id_rsa.pub

4.將查看的SSH Key賦值到git中設置好app

5.測試SSH Keyssh

ssh -T git@git.oschina.net 
出現Welcome to xxx就能夠了

github/gitlab同時管理多個ssh keygitlab


git管理代碼

思考:測試

  1. 工做區與暫存區
  2. 關聯本地和遠程的倉庫
  3. 分支管理
  4. 標籤管理
  5. 版本回退
  6. 忽略文件

工做區與暫存區

工做區 work
暫存區 index/stagefetch

image

git checkout file 此命令會使用HEAD中的最新內容替換掉你的工做目錄中的文件,已添加到暫存區的改動以及新文件都不會受到影響。
git fetch origin & git reset —hard origin/master 丟去你在本地的全部改動與提交,能夠到服務器上獲取最新的版本歷史,並將你本地主分支指向它

關聯本地和遠程的倉庫

step1: 新建本地倉庫ui

mkdir learn-git
cd learn-git
git init

step2: 推送到遠程倉庫url

在github上新建一個空的倉庫,默認設置
github告訴咱們能夠從這個倉庫克隆出新的倉庫,也能夠把已有的本地倉庫與之關聯,而後把本地倉庫的內容推送到github倉庫上
git remote add origin https://github.com/Liuhui11/learn-git.git 本地倉庫關聯遠程倉庫
git remote remove origin 取消關聯
git push -u origin master 將本地倉庫推送到遠程倉庫

報錯: src refspec master does not match any

緣由:空倉庫不能提交上去

解決:

touch README
git commit -m ‘first commit’
git push -u origin master

分支管理

分支管理策略:
master分支:穩定、僅用來發布新版本,平時不能在上面幹活
dev分支:不穩定、幹活的地方,發佈新版本時合併到master上
我的開發的分支:每一個人都有本身的分支,最終要往dev上合併
合併分支時,加上—no-ff參數可以使用普通模式合併,合併後的歷史有分支,能看出來曾經作過合併;而fast forward合併就看不出來曾經作過合併

bug分支:
git stash 將當前工做現場儲存起來,等之後恢復現場後繼續工做
git stash apply 恢復以前的工做現場
git stash list
git stash drop 刪除stash內容
git stash apply stash@{0} 恢復到指定的stash

feature分支:
爲新功能建立分支
git branch -D feature-vulcan 強行刪除分支

多人協做:
git remote -v 查看遠程庫的信息
master分支是主分支,所以時刻與遠程同步
dev分支是開發分支,團隊全部成員都須要在上面工做,因此也須要與遠程同步
bug分支只用於在本地修復bug,就不必推到遠程了
feature分支是否推到遠程,取決於你是否和你的小夥伴在上面開發

git branch dev 新建
git branch -d dev 刪除
git merge dev 合併
git branch -a 查看
git checkout dev 切換

標籤管理

git tag v1.0 建立標籤,默認標籤是打在最新提交的commit上的
git tag 查看標籤
git tag -a <tagname> -m "blablabla..." 指定標籤信息
git tag -s <tagname> -m "blablabla..." 用PGP簽名標籤

找到歷史提交的commit id打標籤:
1.git log --pretty=oneline --abbrev-commit 
2.git tag v1.0 commit-id

git tag -d v1.0 刪除標籤
git push origin <tagname> 推送指定標籤
git push origin --tags 一次性推送所有還沒有推送到遠程的本地標籤
git tag -d v0.9 & git push origin :refs/tags/v0.9 刪除遠程標籤

版本回退

git log/git log --pretty=oneline 查看commit的歷史記錄
git reset —hard HEAD^ 回退到上一個版本,或者經過commit id來回退到指定版本
git reflog 記錄你的每一次命令,包括將來的版本 找到以前版本的commit id能夠返回到最新的版本

忽略文件

git add -f file 強制添加文件,即便被忽略了
git check-ignore -v file 查看文件不能被提交是哪一個規則寫的
https://github.com/github/gitignore 在線自動生成忽略文件

忽略已經被追蹤的文件
git rm --cached file

更新.gitignore忽略掉目標文件
git add .
git commit -m 
或者:git update-index --assume-unchanged logs/*.log
相關文章
相關標籤/搜索