Git下載安裝官網(wǎng)地址快耿,Git學(xué)習(xí)地址,Sourcetree官網(wǎng)下載安裝地址
在任意文件夾右擊Git Bash Here佃却,輸入以下命令搀突,查看安裝版本
git --version
一、Git 使用前配置
在使用 git 前漾月,需要告訴 git 你是誰,在向 git 倉庫中提交時需要用到胃珍。
- 配置提交人姓名:
git config --global user.name 提交人姓名
- 配置提交人姓名:
git config --global user.email 提交人郵箱
- 查看git配置信息:
git config --list
注意
- 如果要對配置信息進(jìn)行修改梁肿,重復(fù)上述命令即可。
- 配置只需要執(zhí)行一次觅彰。
- 配置全局賬號吩蔑、郵箱
$ git config --global user.name "quanxxxheike" #設(shè)置自定義用戶名
$ git config --global user.email "183181xxxx@qq.com" #設(shè)置全局郵箱(使用github賬號郵箱)
$ git config --global user.name #查看設(shè)置的全局用戶名
$ git config --global user.email #查看設(shè)置的全局郵箱
$ git config --global --unset user.name #取消設(shè)置全局用戶名
$ git config --global --unset user.email #取消設(shè)置全局郵箱
- 生成
SSH Key
打開Git Bash
,輸入命令,生成本地的ssh key
(郵箱為自己的GitHub
郵箱)填抬,一直回車烛芬。
$ ssh-keygen -t rsa -C "183181xxxx@qq.com" #郵箱換成你github賬號的郵箱
- 在目錄
【C:\Users\用戶名\.ssh 】
,下產(chǎn)生兩個文件。其中赘娄,id_rsa
是私鑰仆潮,id_ras.pub
是公鑰。
- 配置
GitHub
上的ssh
遣臼,打開setting>>>new SSH Key>>>>>title(隨意)>>>>key(id_ras.pub)
填入【C:\Users\用戶名\.ssh 】
該目錄下的【id_ras.pub】
的文件內(nèi)容性置。
- 打開
Git Bash
,輸入以下命令揍堰,檢測是否成功鹏浅。
$ ssh -T git@github.com
Mac 打開終端,創(chuàng)建用戶名和密碼同上屏歹,生成ssh也同上隐砸,前往【個人】中找到.ssh,如果不存在則通過快捷鍵打開shit+commond+.
打開隱藏文件蝙眶,找到里面的公鑰凰萨,配置同window一樣在GitHub上設(shè)置即可。
2械馆、 提交步驟
-
git init
初始化git倉庫 -
git status
查看文件狀態(tài) -
git add 文件列表
追蹤文件 -
git commit -m 提交信息
向倉庫中提交代碼 -
git log
查看提交記錄
3胖眷、撤銷
- 用暫存區(qū)中的文件覆蓋工作目錄中的文件:
git checkout 文件
- 將文件從暫存區(qū)中刪除:
git rm --cached 文件
- 將 git 倉庫中指定的更新記錄恢復(fù)出來,并且覆蓋暫存區(qū)和工作目錄:
git rest --hard commitID
二霹崎、Git進(jìn)階
1 分支
為了便于理解珊搀,大家暫時可以認(rèn)為分支就是當(dāng)前工作目錄中代碼的一份副本。
使用分支尾菇,可以讓我們從開發(fā)主線上分離出來境析,以免影響開發(fā)主線。
1分支細(xì)分
- 主分支(master):第一次向 git 倉庫中提交更新記錄時自動產(chǎn)生的一個分支派诬。
- 開發(fā)分支(develop):作為開發(fā)的分支劳淆,基于 master 分支創(chuàng)建。
- 功能分支(feature):作為開發(fā)具體功能的分支默赂,基于開發(fā)分支創(chuàng)建
創(chuàng)建分支---提交本地倉庫---再合并到主分支---主分支推送到遠(yuǎn)程---切換到分支----分支再推送到遠(yuǎn)程
- git commit -m '登錄完成提交'
- git checkout master
- git merge login
- git push
- git checkout login
- git push -u origin login
功能分支 -> 開發(fā)分支 -> 主分支
2 分支命令
-
git branch
查看分支 -
git branch 分支名稱
創(chuàng)建分支 -
git checkout 分支名稱
切換分支 -
git merge 來源分支
合并分支 -
git branch -d 分支名稱
刪除分支(分支被合并后才允許刪除)(-D 強制刪除)
3 暫時保存更改
在git中沛鸵,可以暫時提取分支上所有的改動并存儲,讓開發(fā)人員得到一個干凈的工作副本缆八,臨時轉(zhuǎn)向其他工作曲掰。不然在分支上創(chuàng)建的文件未提交到本地倉庫時切換到別的分支上也會存在該文件。如果該文件提交到本地倉庫后并沒有push到遠(yuǎn)程倉庫奈辰,則切換分支后該文件可能會被覆蓋栏妖。所以要么提交、要么存儲臨時改動
使用場景:分支臨時切換
- 存儲臨時改動:
git stash
- 恢復(fù)改動:
git stash pop
三. Github 先自行注冊按照前面所述
3.1Github 先自行注冊按照前面所述
3.2 多人協(xié)作開發(fā)流程
- A在自己的計算機中創(chuàng)建本地倉庫
- A在github中創(chuàng)建遠(yuǎn)程倉庫
- A將本地倉庫推送到遠(yuǎn)程倉庫
- B克隆遠(yuǎn)程倉庫到本地進(jìn)行開發(fā)
- B將本地倉庫中開發(fā)的內(nèi)容推送到遠(yuǎn)程倉庫
- A將遠(yuǎn)程倉庫中的最新內(nèi)容拉去到本地
3.3 創(chuàng)建倉庫
3.1. 填寫倉庫基本信息
3.2.將本地倉庫推送到遠(yuǎn)程倉庫
- git push 遠(yuǎn)程倉庫地址 分支名稱
git push http://github.com.... master
- git push 遠(yuǎn)程倉庫地址 分支名稱
- git push 遠(yuǎn)程倉庫地址別名 分支名稱
git push origin master
- git push 遠(yuǎn)程倉庫地址別名 分支名稱
- git push -u 遠(yuǎn)程倉庫地址別名 分支名稱
-u 記住推送地址及分支奖恰,下次推送只需要輸入git push
即可
git push -u origin
git push
- git push -u 遠(yuǎn)程倉庫地址別名 分支名稱
- git remote add 遠(yuǎn)程倉庫地址別名 遠(yuǎn)程倉庫地址
git remote add origin http://xxx
- git remote add 遠(yuǎn)程倉庫地址別名 遠(yuǎn)程倉庫地址
…or create a new repository on the command line
echo "# git-demo" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/quanqiuheike/git-demo.git
git push -u origin master
…or push an existing repository from the command line
git remote add origin https://github.com/quanqiuheike/git-demo.git
git push -u origin master
…or import code from another repository
You can initialize this repository with code from a Subversion, Mercurial, or TFS project.
四吊趾、Git常見命令集合
在線練習(xí)網(wǎng)站:git命令
在git工程下:
- 查看git樹形圖
git log –graph
- 查看當(dāng)前
branch
和更改的文件
git status
commit
- 添加所有的修改文件至index
git add .
git ls-files
# 列出git index包含的文件
git rm xxx
# 刪除index中的xxx文件 - 取消添加的文件
git reset .
或者git reset 文件名
- 提交到本地倉庫
git commit -m "your "
git commit -m 'xxx'
# 提交
git commit --amend -m 'xxx'
# 合并上一次提交(用于反復(fù)修改)
git commit -am 'xxx'
# 將add和commit合為一步
合并多個commit
git rebase -i
git rebase -i master~4
只操作master分支的最近4次commit
修改關(guān)鍵字說明:
pick:
保留該commit(縮寫:p)
reword:
保留該commit宛裕,但我需要修改該commit的注釋(縮寫:r)
edit:
保留該commit, 但我要停下來修改該提交(不僅僅修改注釋)(縮寫:e)
squash:
將該commit和前一個commit合并(縮寫:s)
fixup:
將該commit和前一個commit合并,但我不要保留該提交的注釋信息(縮寫:f)
exec:
執(zhí)行shell命令(縮寫:x)
drop:
我要丟棄該commit(縮寫:d)
a
編輯 esc
退出編輯 :wq
保存編輯
git commit --amend
將改動合并到上一個commit
拉取 Pull
-
git pull
拉取當(dāng)前分支最新代碼 -
git pull -r
拉取最近代碼 并將commit節(jié)點移到最新 -
git pull origin master rebase
拉取指定分支代碼
取消本地commit
-
git reset HEAD~2
回退向前兩個版本的commit記錄(刪除最新的兩次commit記錄) -
git reset --mixed commit_id
取消add和commit操作 不改變代碼论泛。 -
git reset --soft commit_id
取消commit操作 不撤銷add续滋,不改變代碼。 -
git reset --hard commit_id
去向commit并將代碼還原到之前版本
* 撤銷遠(yuǎn)程分支提交記錄
git revert <id>
撤銷某個提交記錄
git push
推送到遠(yuǎn)程分支
分支
- 查看遠(yuǎn)程所有分支
git branch -r
- 查看本地倉庫所有分支
git branch
- 查看本地和遠(yuǎn)程所有分支
git branch -a
- 創(chuàng)建分支
git branch <branchName>
- 切換到某分支
git checkout <branchName>
- 創(chuàng)建并切換到當(dāng)前分支
git checkout -b <your-branch-name>
相當(dāng)于上兩步 - 從遠(yuǎn)程分支檢出并關(guān)聯(lián)
git checkout -b <本地分支名> <origin/遠(yuǎn)程分支名>
- 把當(dāng)前分支強制指向某提交節(jié)點
git branch -f <當(dāng)前分支名> <commitId>
例子:git branch -f master 63c7a35
git checkout -fB <當(dāng)前分支名> <commitId>
git checkout -fB master 63c7a35
- 把當(dāng)前分支所有節(jié)點平移到另一個分支某個節(jié)點
git rebase <要平移的分支節(jié)點的commitId>
- 查看本地分支與遠(yuǎn)程分支的版本對比
git branch -vv
- 查看本地和遠(yuǎn)程的所有分支
git branch -a
- 刪除本地分支
git branch -d <BranchName>
- 刪除遠(yuǎn)程分支
git push origin --delete <BranchName>
- 當(dāng)前分支與遠(yuǎn)程某分支做關(guān)聯(lián)
git branch -u orgin/master
Merge合并代碼
- 把branchA 合并到master里
git checkout master
先切換到master分支
git merge branchA
把branchA合并過來
Cherry-pick
- 有點類似于rebase 可以選中某幾個提交記錄
例子:其他分支有ABCD4個提交記錄孵奶,要取D和B兩個提交merge到master上(ABCD指的是commitId):
git checkout master
切換到master分支
git cherry-pick D B
將D和Bmerge到mater中
Tag標(biāo)簽
- 給某個分支打標(biāo)簽
git tag <TAG content> <commitId>
Stash
- 存:
git stash
將當(dāng)前代碼的改保存起來 生成一個id
git stash list 查看保存列表
- 绕W谩:
git stash pop
將最新的保存記錄恢復(fù)到工作區(qū)
git stash pop stash@{id}
指定恢復(fù)某個記錄
【commit前要做的事情】
- 代碼風(fēng)格檢驗
mint stylecheck
- 單元測試
mint precommit
https://blog.csdn.net/love_java_cc/article/details/84674161
http://www.reibang.com/p/dce21c4e88fc
Mac 配置git環(huán)境