Git基本操做

1.學習教程                   github.com/geeeeeeeeek…

2.基本概念

  • git:分佈式版本管理工具
  • github:一個網站,大型代碼託管平臺
  • gitlab:基於git的代碼管理軟件
  • code review:代碼評審 Code Review主要分兩類:一個就是技術專家人工review;第二個就是藉助程序自動檢查代碼。在 GitHub上你們能夠到Market Place找找質量相關的app,好比代碼靜態檢查等app,讓它在pull request的時候發揮做用,幫助團隊作review
  • 集成分支:通常是master分支
  • pull requests:是從本身的分支合併代碼到集成分支
  • release項目的發佈
  • jenkins的使用,至關於redis,須要本身搭建本地服務進行管理使用
  • 暫存區,不是正式提交

3.github開源項目搜索技巧

  • Advanced search
  • 關鍵詞 in:readme stars:>1000

4.git的安裝和配置

  • 安裝: git-scm.com/book/en/v2/…
  • 配置用戶名和密碼: git config --global user,name 'user.name'/ git config --global user.email 'user.email'
  • 查看配置:git config --global --list

5.git的基本命令

  • 1.已有項目須要歸入git管理--cd 項目全部文件夾:git init
  • 2.新建項目進行git管理 -- cd 某個文件夾/git init 項目名/cd 項目名
  • 3.git add 文件名---將文件提交到暫存區
  • 4.git commit -m "進行變動說明"
  • 5.git status/git log
  • 6.git add -u表示已經被git跟蹤的更改能夠一會兒所有放在暫存區提交
  • 7.git add -u:將文件的修改、文件的刪除,添加到暫存區。 git add .:將文件的修改,文件的新建,添加到暫存區。 git add -A:將文件的修改,文件的刪除,文件的新建,添加到暫存區。 工做中通常是用到 git add . 或者 git add -A, git add -A相對於git add -u命令的優勢 : 能夠提交全部被刪除、被替換、被修改和新增的文件到數據暫存區,而git add -u 只能操做跟蹤過的文件 git add -A 等同於git add -all
  1. .git文件內容:HEAD:表示當前工做的分支config:配置文件,local用戶名 refs/heads:存放分支
  2. head會指定到某一個commit,包括指向新得分支得commit 10.git diff head head^ 當前head和上一次head的比較 11.指定不須要用git管理的文件----在倉庫中建立.gitignore文件

6.文件重命名

  • 1.原來的作法,首先工做區重命名,而後提交暫存區,刪除暫存區原來的文件git rm 文件名
  • 2.git reset --hard 暫存區工做目錄全部的變動將會清除
  • 3.直接使用git mv readme readme.md

7.日誌操做

  • 1.git log -n4 --oneline最近4次操做
  • 2.git log --oneline --all 全部的
  • 3.git log --oneline --all --graph 圖形化
  • 4.本節的一些演示命令總結 • git log --all 查看全部分支的歷史 • git log --all --graph 查看圖形化的 log 地址 • git log --oneline 查看單行的簡潔歷史。 • git log --oneline -n4 查看最近的四條簡潔歷史。 • git log --oneline --all -n4 --graph 查看全部分支最近 4 條單行的圖形化歷史。 • git help --web log 跳轉到git log 的幫助文檔網頁

8.分支管理

  • 1.git branch -v 查看版本分支
  • 2.git branch -av 查看包括遠程分支
  • 3.git checkout 分支名:切換分支
  • 4.建立新分支:git checkout -b 分支名
  • 5.切換分支:git checkout master 查看所有分支:git branch -av 刪除分支:git branch -d 分支名 (-D:強制刪除) 6.分支的做用:前端和後臺分爲不一樣的分支 7.圖形化管理 gitk ---author和committer不一樣之處在於:從master複製到tmp分支,會保留master的做者

9.提交修改

  • 1.針對最後一次的提交修改message ----- git commit --amend
  • 2.針對老舊的commit的message進行修改------ git rebase -i 要修改父節點的id

10.暫存區/工做區/head

  • 1.暫存區和head比較:git diff --cached
  • 2.工做區和暫存區比較:git diff 查看全部文件的差異 /git diff --文件名 查看指定文件 工做區和暫存區的差異
  • 3.暫存區覆蓋工做區的修改----暫存區的內容都不要:git reset HEAD
  • 4.暫存區覆蓋工做區的修改--git checkout
  • 5.取消暫存區部分文件的更改--git reset HEAD --文件名
  • 6.刪除最近幾回提交 --- git reset--hard hash值(hash值是要刪除提交上一次的hash值)

11.github的使用

  • 1.建立分支,修改內容,提交請求,合併分支
  • 2.公私鑰的建立--查看有沒有設置公私鑰-- ls -al ~/.ssh
  • 3.在本地設置密鑰:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • 4.公鑰:~/.ssh/id_rsa.pub ---私鑰:~/.ssh/id_rsa
  • 5.遠端站點---git remote add github(站點名) github.com/git201909/g…
  • 6.fetch:從遠端拉數據到本地 /push:將本地數據上傳到遠端
  • 7.刪除遠端站點:git remote remove 站點名
  • 8.從本地倉庫push到遠端倉庫---git push 站點名 --all
  • 9.git pull 將遠端分支的內容拉到本地,而後與本地分支合併
  • 10.將遠程代碼fetch到本地 git fetch 站點名 分支名
  • 11.將遠端master分支合併到本地分支 git merge github(站點名)/master(分支名)
  • 12.當本地master分支和遠端分支不同時,可是想要將本地master 分支 merge到遠端分支---git merge --allow-unrelated-histories github(站點名)/master(遠端分支名)
  • 13.將本地master分支push到遠端分支---git push github(遠端站點名) master
  • 14.git remote -v 查看遠程版本庫信息 git remote add githup 添加githup遠程版本庫 git fetch githup 拉取遠程版本庫 git merge -h 查看合併幫助信息 git merge --allow-unrelated-histories githup/master 合併githup上的master分支(兩分支不是父子關係,因此合併須要添加 --allow-unrelated-histories) git push githup 推送同步到githup倉庫 15.fast-forward:兩個分支合併時,target分支若是是source分支的祖先,那麼這兩個分支就是 fast-forword的關係

12.分支合併衝突問題

  • 1.當兩我的同時對github上master分支進行修改的時候,修改不一樣文件---兩個用戶同時獲取拉取了master的代碼--一個用戶修改文件已經提交,另外一個用戶再次push的時候會出現提交異常

<1>首先:1.將遠端分支fetch下來--git fetch github <2>再次:2.合併分支 <3>最後:3.push分支到遠程前端

  • 2.當兩我的同時修改了一個分支的同一個文件不一樣區域--一我的修改以後push,另一我的push的時候會發送衝突

<1>1.將遠端fetch下來,而且merge本地和遠端---git fetch github <2>git merge 遠程分支,將遠程分支和本地分支合併 <3>push到遠程:git push githubgit

  • 3.當兩我的同時修改了同一分支的同一文件的同一區域

<1>github fetch github <2>merge遠程分支,合併分支的時候會發生衝突,解決衝突,修改以前修改的文件,而後提交github

git push -f 協同工做通常禁止使用web

相關文章
相關標籤/搜索