git在平時的開發中用的太頻繁了,以致於我都不知道如何去形容它。囧。
假設咱們開發的工做相似於圖書整理,寫的代碼就是不少人借書還書,假設我和你一塊兒來整理這些書,有不少人來借書,你給A一本,我給B一本,這沒有任何問題,可是,忽然來了C和D,他倆同時要借一本《時間簡史》,並且這本書僅此一本,個人手伸向了這本書,你的手也伸向了這本書,而後,是書在咱們倆的爭奪中被撕成兩半了?仍是我和你打起來了?
咱們固然都不會這麼蠢,咱們拿書的時候必定會看看對方有沒有正在拿,若是你先伸手了我就讓給你,沒有必要打一架(笑)。
咱們多人開發的時候,維護一套代碼,git這個工具就包含了咱們許多的行爲,好比經常使用的git pull 就至關因而用眼睛去看一下,看看書架是否是有別人已經動過了,別人已經把書擺滿了,本身還繼續往這個地方放書,固然放不進去啦。php
yum install git
/ apt-get install git
brew install git
git init
git config --global user.name "yourname" git config --global user.email test@runoob.com git config --list //查看當前配置信息
ssh-keygen -t rsa -C "youremail@example.com"
以後一路回車,.ssh文件夾下就有了兩個文件,私鑰id_rsa和共鑰id_rsa.pub,須要提供ssh密鑰的都是要的共鑰,id_rsa.pub。linux
git clone [git地址]
這個就是最經常使用的git拉取一個倉庫的代碼到本地的命令,會在當前的目錄下新建一個倉庫代碼文件夾。若是你的ssh已經保存在這個倉庫裏了,那麼你能夠push,不然的話你只有pull的權限。git
git remote add [名字] [地址]
好比git remote add origin git@github.com:gaopu1995/hiphp.git
,就能夠把本地倉庫和遠程創建鏈接。通常默認叫它 origin。
其餘的幾個遠程倉庫命令:github
git remote //查看當前遠程分支名字 git remote -v //查看當前遠程分支的url,有兩個,一個fetch的,一個push的,通常會是同樣的,就是你設置的那一個 git remote remove <name> //移除遠程分支 git remote -h //其餘的就本身看一下幫助吧
git push --set-upstream origin master
若是你刪除或者更換了遠程倉庫,新的倉庫在你推送的時候會讓你把你當前的分支和遠程分支創建映射關係,最後的兩個參數就是遠程倉庫名和遠程倉庫的分支名,操做對象是你當前分支。windows
git pull //拉取最新代碼 git push //把本地提交推送到遠程 git add [文件](多個文件空格隔開) //把本地的更改添加到更改緩存中 git commit -m "提交註釋" //提交目前緩存中的更改
解釋一下:緩存
怎麼改:衝突部分會用 >>>>>>>>分支 標出來,改爲正確的,add而後commit就行。ssh
git checkout [分支名] //切換分支 git checkout -b [新分支名] //從當前分支copy一個新的分支 git branch -d [分支名] //刪除分支 git branch //顯示當前所在分支 git merge [分支名] //當前分支合併目標分支的修改
git stash //暫存代碼 git stash list //查看stash存的內容 git stash pop //恢復第一個暫存 git stash clear //清理暫存
git log //查看提交記錄 git log --oneline //查看提交記錄的簡單模式
git reset --hard commit_id //回退到某個版本