一 、git的導入
- git的初始化
- 初始化姓名和郵箱(會在~/.gitconfig 下設置)
git config --global user.name "firstname lastname"
git config --global user.email "[email protected]"
- 爲了更好的顯示命令 添加一條命令
git config --global color.ui auto
- 初始化姓名和郵箱(會在~/.gitconfig 下設置)
- 使用前的準備
- 設置ssh登陸
- 設置ssh key
ssh-keygen -t rsa -C "email@email"
- 命令成功後會在~/.ssh/ 下生成id_rsa和id_rsa.pub,後者爲公鑰,前者爲私鑰
- 將公鑰添加到github內
- 測試ssh登陸github
ssh -T [email protected]
- 設置ssh key
- 設置ssh登陸
-
基本操作
- 初始化倉庫
mkdir DSA_Learn
cd DSA_Learn
git init
- 成功後會在當前目錄生成 .git
- 查看當前狀態
git status
- git add 向暫存區內添加文件
-
git commit 保存倉庫的歷史記錄
git commit -m "first commit"//-m只記錄簡介信息
- git log 查看提交的日誌
- git diff 查看更改前後的差別
- 初始化倉庫
-
分支操作
- 顯示分支一覽表
git branch "分支名" 創建分支,例如 git branch zhuhu 其中zhuhu就是分支名
- 創建和切換分支(創建feature-A 並切換的分支下面)
git checkout -b feature-A
- 切換回上一次的分支
git checkout “分支名” 例如 git checkout zhuhu q切換到zhuhu這個分支裏面去
git checkout master 切換到主線中
- 合併分支
- 首先切回master分支
git merge --no-ff feature-A git merge “分支名” 就是將該分支合併到主線中
- 以圖表方式查看分支
git log --graph
- 顯示分支一覽表
- 更改提交的操作
- 回溯歷史版本(提供hash值即可回溯到版本)
git reset --hard hash
- 查看當前狀態的log和查看當前倉庫的log
git log
git reflog //當前倉庫的log
- 若完成此操作
- 創建feature-A分支併合並
- 回溯到創建合併前的master狀態
- 創建fix-B
- 修改fix-B
- 回溯到feature-A合併的狀態
- 合併fix-B(可能需要解決衝突)
- 回溯歷史版本(提供hash值即可回溯到版本)
- 修改提交信息
git commit --amend
修改上一條提交信息
- 推送到遠程倉庫
- 爲本地倉庫設置遠程倉庫(origin爲遠程倉庫的標識符)
git remote add origin [email protected]:skywak3r/DSA_Learn
- 將本地倉庫推送的遠程倉庫
git push -u origin master
//- 會將當前分支推送到遠程倉庫origin的master下;-u命令是將origin 分支設置爲master的upstream(上游),之後從遠程獲取信息的話,直接從origin的master分支獲取內容
- 推送master以外的分支
git push -u origin feature-D
- 爲本地倉庫設置遠程倉庫(origin爲遠程倉庫的標識符)
- 從遠程倉庫獲取
git clone [email protected]:skywak3r/DSA_Learn
git branch -a
獲取所有的分支信息- 獲取遠程倉庫的feature-D分支
git chekcout -b feature-D origin/feature-D
- 修改D中的內容
- 將feature-D推送到遠端
git commit -am "add feature-D"
git push
- 獲取最新的遠程倉庫的feature-D的內容
git pull origin feature-D
將本地的feature-D更新到最新狀態
- pull requset的使用
- pull request是自己修改完代碼之後,請求倉庫採取的一種行爲。
- pull之後要在ISSUE中詳細描述出修改
- pull的具體步驟
- 將遠程倉庫的fork到自己遠程倉庫
- 將遠程倉庫clone到自己倉庫
- 創建特性分支
- 在特性分支下修改代碼
- git push 到自己的遠程倉庫
- 登陸githun 點擊create pull填寫issue後提交。
- git pull 更有效的方法
- 提早發送pull,即使尚未完成,只需要簡單寫出思路,會有人提出意見。
- 在提交的pull前綴【WIP】(work in process)
- pull request是自己修改完代碼之後,請求倉庫採取的一種行爲。
- 倉庫的維護
- fork到自己的遠程倉庫之後,很可能與最新的代碼失節。
- 爲遠程倉庫設置upstream
git remote add upstream [email protected]:skywak3r/DSA_Learn
- 更新倉庫
git fetch upstream
- 爲遠程倉庫設置upstream
- fork到自己的遠程倉庫之後,很可能與最新的代碼失節。
- 接受pull request
- 當收到pull request後
- 你需要clone他的最新代碼
git remote add "pull request發送者" git@github:pullrequet發送者/代碼
git fetch 發送者
- 創建一個新的分支併合並
git checkout -b feature
git merge work
- 檢測代碼 若成功
- 刪除合併的分支
git branch -D feature
git push