Git(讀音爲/gɪt/。)是一個開源的分佈式版本控制系統,能夠有效、高速地處理從很小到很是大的項目版本管理。 [1] Git 是 Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。git
分佈式相比於集中式的最大區別在於開發者能夠提交到本地,每一個開發者經過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫。github
一、將github上代碼克隆到本地編程
進入本地須要存放克隆代碼的文件夾,右鍵進入git bash here窗口,執行」git init」初始化這個文件夾(也就是在這個文件夾下建立一個.git文件夾,將一些配置信息放進來)windows
cd d:/gittest
git init
在github找到須要克隆代碼,執行git clone
命令bash
https://github.com/nameLcj/xyy-test.git
二、將本地已有項目分享到遠程倉庫中服務器
1)打開git bash here 終端並進入須要上傳的項目目錄,執行git init 對項目進行初始化操做分佈式
cd d:/DemoTest
git init
2)將當前項目下全部的文件添加到本地的git倉庫的暫存區(若是隻想共享一部分,那就不用.
,就把對應的文件或者文件夾列出來就行,這裏用add表示將當前文件放到暫存區,其實並無提交)測試
git add .
3)接下來提交暫存區文件到本地倉庫,使用git commit命令,後面-m表示message,意思是提交本次修改的信息。fetch
git commit -m "inital commit"
4)將本地庫與遠程庫進行關聯並上傳至遠程庫中,前提是github中已經存在一個庫,好比:https://github.com/nameLcj/xyy-test.gitspa
git remote add origin https://github.com/nameLcj/xyy-test.git
這裏git remote表示對遠程倉庫的操做,origin是遠程倉庫本體(默認分支名稱),add表示將遠程的庫加入,也就是關聯的操做,接下來咱們使用git remote -v命令查看關聯結果發現已經關聯上了:
$ git remote -v origin git@github.com:nameLcj/xyy-test.git (fetch) origin git@github.com:nameLcj/xyy-test.git (push)
5)最後把本地文件進行提交便可
git push origin master
git push表示提交代碼的意思,origin表示遠程的分支名稱,master表示本地分支名稱,上面代碼就是說把本地的master分支推送到遠程端,操做以後能夠在遠程看到了。
三、從遠程倉庫更新至本地文件
多人協做開發的時候,每次開發前第一步是從遠程將別人提交的修改更新到本地,由於若是你不更新直接編程會致使本身的版本號比遠程新,特別容易形成衝突。因此通常先更新再提交修改。從遠程更新時候第一步先查看一下遠程的分支狀況,而後將指定的分支更新到本地
$ git remote -v origin git@github.com:nameLcj/xyy-test.git (fetch) origin git@github.com:nameLcj/xyy-test.git (push)
1)將遠程修改更新到本地
$ git fetch origin master From github.com:nameLcj/xyy-test * branch master -> FETCH_HEAD 6e56dbd..1310026 master -> origin/master
前面說過origin是遠程倉庫分支,master是本地分支,因此這個命令就是將遠程分支更新到本地。
2)合併遠程和本地
$ git merge origin/master
Already up to date.
遠程修改更新到本地以後要作merge操做才能看到最終修改。
固然git fetch -> git merge 操做可使用git pull代替。這樣只要執行一步就行了。
$ git pull
Already up to date.
四、將本地修改提交到遠程
第一步是add文件,表示要提交修改的文件
$ git add test.txt
第二步commit代碼到暫存區
$ git commit -m "測試本地提交遠程" [master 8a15317] 測試本地提交遠程 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 test.txt
第三步push代碼到遠程倉庫
$ git push origin master Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Delta compression using up to 6 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 265 bytes | 265.00 KiB/s, done. Total 2 (delta 1), reused 0 (delta 0) remote: Resolving deltas: 100% (1/1), completed with 1 local object. To github.com:nameLcj/xyy-test.git 1310026..8a15317 master -> master
持續中