① 如何將本地代碼提交到github遠程倉庫
第一步:建立git倉庫
cd到你的本地項目根目錄下,執行git命令
git init1
第二步:將項目的所有文件添加到倉庫中
git add .1
如果想添加某個特定的文件,只需把.換成特定的文件名即可
第三步:將add的文件commit到倉庫
git commit -m "注釋語句"1
第四步:去github上創建自己的Repository,創建頁面如下圖所示:
② webstorm怎麼和git關聯
對於git的使用,大家的使用方式均有不同,最王道的方式非命令行莫屬,基於git的GUI軟體還是很多的,大家可自行研究使用。之前使用eclipse svn插件去操作版本管理,還是很便捷的一件事情。而今用慣了webstorm,當然裡面也集成了對svn的支持,只是最近一直在用git,所以想試著用webstorm中的git集成工具進行版本管理。當然之前都是以敲命令行的方式去做,達到一個熟練度,速度還是很可觀的。通過這篇文章,主要講述如何使用webstorm中的git工具進行更加快速高效的版本管理。
1. 先說git理論
webstorm提供了git不少試圖,下面列舉其一:
我們在上面看到了git面板的很多選項,想要弄清楚各個選項具體要做什麼,常用且常規的git理論知識及操作經驗不可少。
我們先看對git操作的簡單分類,如下——
遠程倉庫類:git clone/remote/pull/push/rebase/fetch
分支類(包括tag):git branch/tag/checkout/stash
信息查閱:git status/log/diff
本地常規操作:git add/commit/rm/merge/reset
這里僅僅是我個人的分類方式,每個人都對它有不同的分類,歡迎補充。
需要強調的是,你需要對上述命令關鍵詞都做了什麼事兒、應用於何場景,需要有清晰的把握,如果你不知,不放看看文章末尾的參考文章。多說一句,一定要結合工作區、暫存區、版本庫的三者關系去理解。
結合上面給出的圖片,我們可以看到,webstorm中的git工具無非是這些命令行的可視化抽象,我們來看看怎麼玩兒好它。
2. 使用webstorm中的git
2.1 右鍵菜單
先來最熟知的右鍵操作,分為兩類:文件夾(或者工程)右鍵和文件右鍵,先看看文件夾右鍵的效果——
再看看文件右鍵——
會發現兩者的差異僅僅在於文件右鍵的視圖多了一些diff操作(或者可以聯想到git diff命令)。我們看看各個選項的含義——
Commit File... 提交至本地版本庫
Add 添加進緩存區
Show Current Revision 顯示當前文件的最新版本信息,如下圖——
Compare with the Same Repository Version 與當前版本(的文件)做比較,可以理解為與最新版本比較,也就是可以比較本地工作區和本地版本庫的差異(也記住,比較視圖中,右側永遠是最新的那個版本內容)——
Compare with Latest Repository Version 與上一版本(的文件)做比較,可以理解為當前版本與本地工作區所做的更改共同來與上一版本比較
Compare with... 與任意歷史版本(的文件)做比較
Compare with Branch... 與任意分支(的文件)做比較,包括本地分支及遠程分支
Show History 展示關聯本文件(或者文件夾中的所有文件)提交信息歷史,我們可以看到,歷史提交信息面板出現於下方Version Control面板中——
Show History for Selection 對指定的代碼塊,顯示歷史版本信息
(連接第二個圖)-------->>>>>>
Revert... 還原代碼,要注意與reset的區分,這里僅僅是將本地工作區的代碼還原為本地倉庫中的最新版本的代碼
Repository > 倉庫二級導航選項,即相關倉庫類的操作
要注意,有些操作是針對某單個文件操作的,每當操作某個文件夾時(或者某個工程時),會以選中的文件的集合為單位展開操作文件,並進行操作。
我們繼續看看Respository的二級導航——
Branches 顯示左右分支,包括本地分支和遠程分支
進而對各個分支能夠進行更多的操作,如下圖所示——
或者
checkout 檢出至本地工作區,此時本地已經檢出過
checkout as new local branch 檢出至本地工作區,並創建新分支
compare 兩個分支進行比較,比如,我想拿當前的test分支與本地的master分支進行比較,會看到——
會看到,會把各自提交的變更內容一一列表出來。要注意,這里不包含本地所進行的更改尚未提交到本地倉庫的部分,即沒有commit的部分。
merge 進行合並操作,以比較版本合入當前版本中,merge的過程當中,可能會有沖突(要記住,多人修改同一處代碼時,才可出現沖突),稍候介紹怎麼處理沖突
delete 刪除當前分支
OK,branches面板介紹完畢,當然還可以在最右下角同樣有branches面板操作入口,如下——
繼續介紹,倉庫二級導航——
Tag 打tag
Merge Changes 合並操作
Stash Changes stash操作,具體用法,你若不知,可以參考一下下面的文章
... ...
這里省略剩下的那些操作,關於merge、stash、reset的一些操作細節,需要先懂得這三個命令的相關參數的具體含義,再去操作就很好理解了。
OK,關於右鍵菜單就介紹到這兒了,可以看到它能做的事兒——
1. 非常方便的對對比文件或者文件夾的差異,試圖直觀明了
2. 方便做常規的add/commit/revert操作等
3. 方便操作版本庫的相關管理,如fetch/merge/push/rebase等等
2.1 Version Control面板
OK,接下來,介紹一下Version Control面板——
首先,來介紹對應Local Changes
這里也就是工作區的更改與當前版本差異的diff文件列表,Unversioned Files也就是代表沒有加入到版本管理的文件列表,需要進行add操作,添加進緩存區中;Default中的文件是代表版本管理中經過本地更改的文件,需要進行add 和commit操作,將更改的文件添加入緩存區中並提交到本地版本庫中。要知曉git add和git commit做了什麼事兒
git add:暫存區的目錄樹被更新,同時工作區修改(或新增)的文件內容被寫入到對象庫中的一個新的對象中,而該對象的ID 被記錄在暫存區的文件索引中。
git commit:暫存區的目錄樹寫到版本庫(對象庫)中,對應的分支會做相應的更新。即HEAD指向的目錄樹就是提交時暫存區的目錄樹
可以對新增的文件進行add 操作,如下——
其餘選項——
Revert:同上述講述,即還原本地變更
Move to Another Changelist:轉入其他變更標記,分門別類,好管理
Show Diff:同上述講述
Jump to Source:直接打開變更源文件
Ignore:加入.gitnore文件中
Create Patch:打變更補丁
Shelve Changes:與stash功能略相近,請參看後邊文章
緊接著,我們最常用的操作就是Commit Changes了——
可以單獨去commit,當然也可以commit和push 一起進行。
可以看出來,這里的Local Changes也就起到了"git status"命令的作用。
OK,繼續介紹log面板——
選中相應分支,右鍵,我們看到——
我們看到,常規的選項,在上述中已提及過,在此就不在啰嗦,這里的Cherry-Pick,指的是將選中版本變更的文件內容merge進當前工作區中,我們會看到,同樣會出現沖突的情況——
當我們選中merge操作時,看到如下圖——
雖然機器解決的沖突不是令人很滿意,不過你可以再merge result面板中,直接去解決沖突,直接看到歷史版本,比較直觀。
解決沖突後,也就讓需要再去做add和commit操作,至於怎麼使用,在上述已提及。
接下來是console面板,它用於記錄所有你通過webstorm中git操作的命令,如下——
看一看到,這里的命令行,也就是常規的我們熟知的命令行。
Version Control面板介紹到這兒。可以看到,我們使用Version Control面板,我們可以做的事兒——
1. 可以隨時看到本地變更的文件列表和內容,方便提交及還原
2. 看到所有分支(自己與小夥伴兒的)動態,及對應的變更內容,方便對比文件,方便追查問題
3. 可以reset或者merge任意版本
4. 同樣可以看到任意操作的命令行,利於學習git命令行
3. 優勢
整體而言,個人覺得webstorm操作git起來,還是很方便,大致分成三類——
1. 對比類操作compare
2. 倉庫類操作repository
3. 本地操作local changes
個人覺得也是一個非常不錯的學習脈絡,整體來看,其最大的優勢還是在清晰明了的視圖上。
4. 總結
至此,對webstorm如何操作git的介紹就介紹完畢,我在這兒,舉一個最常規的git操作場景,大家可以回顧著操作試試——
常規合作開發(同一分支開發 / 不同分支開發): add and commit --> fetch —> compare —> merge (and resolve conflicts) —> push
從接觸git,到使用git命令行,到理解git常規工作原理,再到深入使用webstorm操作git,整體而言,需要做到——
1. 要熟知git常用的理論知識
2. 要熟悉命令行,如果你脫離了webstorm這樣的IDE,同樣能夠進行git版本管理
3. 好好利用IDE帶來的視圖清晰這一個優勢,更快的查詢問題、解決問題
OK,至此,webstorm的研究暫時告一段落,最近搞搞其他的技術研究......
③ 如何將本地的代碼上傳到github
第一步:建立git倉庫
cd到你的本地項目根目錄下,執行git命令
git init1
第二步:將項目的所有文件添加到倉庫中
git add .1
如果想添加某個特定的文件,只需把.換成特定的文件名即可
第三步:將add的文件commit到倉庫
git commit -m "注釋語句"1
第四步:去github上創建自己的Repository,創建頁面如下圖所示:
④ git怎麼連接遠程倉庫
方案一 : 本地創建項目根目錄, 然後與遠程Git關聯, 之後的操作一樣:
#創建新文件夾
mkdir xxx
#進入
cd xxx
#初始化Git倉庫
git init
#提交改變到緩存
git commit -m 'description'
#本地git倉庫關聯GitHub倉庫
git remote add origin [email protected]:han1202012/TabHost_Test.git
#提交到GitHub中
git push -u origin master
方案二 : 方案二就是不用關聯Git倉庫, 直接從Git中克隆源碼到本地, 項目根目錄也不用創建;
#從GitHub上克隆項目到本地
git clone [email protected]:han1202012/NDKHelloworld.git #注意克隆的時候直接在倉庫根目錄即可, 不用再創建項目根目錄 ;
#添加文件
git add ./* # 將目錄中所有文件添加;
#提交緩存
git commit -m '提交';
#提交到遠程GitHub倉庫
git push -u origin master ;
⑤ github怎麼上傳文件夾到庫
一、使用git上傳文件到GitHub需要git客戶端以及注冊GitHub賬號。命令簡單上傳通道
git官網:去git官網
github官網:去github官網
git的安裝以及GitHub的注冊這里就不說了。還不知道的,沒安裝的看這里:我要去看git安裝教程
下邊就直接從上傳開始。
第一步:我們需要先創建一個本地的版本庫(其實也就是一個文件夾)。
你可以直接在桌面右擊新建文件夾,也可以右擊打開Git bash命令行窗口通過命令來創建。
現在我通過命令行在桌面新建一個test文件夾(你也可以在其他任何地方創建這個文件夾),並且進入這個文件夾
第二步:在命令行中輸入git init把這個文件夾變成Git可管理的倉庫
這時你會發現test裡面多了個.git文件夾,它是Git用來跟蹤和管理版本庫的,因為它默認是隱藏文件,要是看不到就設置下文件夾和搜索選項。
之後把需要上傳到GitHub的文件全部復制到這test這個目錄下。然後通過git add .(注意這個".",是有空格的,"."代表這個test這個文件夾下的目錄全部都提交。你也可以通過git add 文件名 提交指定的文件)把文件添加到緩存區
或者指定具體文件提交
然後可以通過git status命令,查看下現在的狀態,也可以不看,隨你看到有css,js文件夾的內容都提交上去了。
然後,在使用命令git commit -m "這裡面寫你的注釋" 把文件提交的本地倉庫第三步:下面就到了連接遠程倉庫(也就是連接Github)
由於本地Git倉庫和Github倉庫之間的傳輸是通過SSH加密的,所以連接時需要設置一下:
創建SSH KEY。先看一下你C盤用戶目錄下有沒有.ssh目錄,有的話看下裡面有沒有id_rsa和id_rsa.pub這兩個文件,有就跳到下一步,沒有就通過下面命令創建
$ ssh-keygen -t rsa -C "[email protected]"
然後一路回車。這時你就會在用戶下的.ssh目錄里找到id_rsa和id_rsa.pub這兩個文件
第四步:登錄Github,找到右上角的圖標,打開點進裡面的Settings,再選中裡面的SSH and GPG KEYS,點擊右上角的New SSH key,然後Title裡面隨便填,再把剛才id_rsa.pub裡面的內容復制到Title下面的Key內容框裡面,最後點擊Add SSH key,這樣就完成了SSH Key的加密。具體步驟也可看下面:
上面key默認在C:\Users\Administrator\.ssh下的id_rsa.pub文件中,把這個文件中的內容全部復制到上面的key裡面就可以了。如下圖:
第五步:在Github上創建一個Git倉庫。
你可以直接點New repository來創建,比如我創建了一個tes2t的倉庫。
上面我沒有默認勾選Initialize this repository with a README,勾選和不勾選創建的結果區別如下:
下邊這個是勾選的
第六步:在Github上創建好Git倉庫之後我們就可以和本地倉庫進行關聯了,根據創建好的Git倉庫頁面的提示,可以在本地test倉庫的命令行輸入:
$ git remote add origin [email protected]:smfx1314/test2.git第七步:關聯好之後我們就可以把本地庫的所有內容推送到遠程倉庫(也就是Github)上了,通過:
$ git push -u origin master
由於新建的遠程倉庫是空的,所以要加上-u這個參數。然後進去GitHub test2這個倉庫刷新下就會有已經上傳的文件夾了。如果新建遠程倉庫不是空的,例如你勾選了 Initialize this repository with a README。那麼你通過命令 $ git push -u origin master是會報錯的,如下: 這是由於你新創建的那個倉庫裡面的README文件不在本地倉庫目錄中,這時我們可以通過以下命令先將內容合並以下:
$ git pull --rebase origin master
再輸入$ git push origin master。
等遠程倉庫裡面有了內容之後,下次再從本地庫上傳內容的時候只需下面這樣就可以了:
$ git push origin master。
至此就完成了將本地項目上傳到Github的整個過程。
⑥ 如何將本地代碼使用Git上傳至Github
一、首先:下載git和安裝git。
二、在想要上傳的文件夾右鍵點擊會有git bash here點擊出現如圖所示
到此,就完成了將本地項目上傳到Github的整個過程。這時候你再重新刷新你的Github頁面進入剛才新建的那個倉庫裡面就會發現項目已經成功上傳了。
⑦ 怎麼通過git與創建好的遠程倉庫鏈接
初始化一個本地Git倉庫(把本地的文件夾初始化成一個Git可以管理的版本庫)
git init
注意:需讓命令行終端處在當前文件目錄下
把文件添加到本地版本庫
git add 文件名
把文件修改提交到倉庫
git commit -m "注釋"
關聯一個遠程倉庫
git remote add origin [email protected]:YotrolZ/helloTest.git
將最新的修改推送到遠程倉庫
git push -u origin master
注意:
1.每次push前要先進行git add 文件名 和 git commit -m "注釋"
2.在第一次進行push時,我們加上-u參數,後期push時就不用再加-u參數
⑧ 如何利用git由本機向github上傳文件
1、在本地創建一個版本庫(即文件夾),通過git init把它變成Git倉庫;
2、把項目復制到這個文件夾裡面,再通過git add .把項目添加到倉庫;
3、再通過git commit -m "注釋內容"把項目提交到倉庫;
4、在Github上設置好SSH密鑰後,新建一個遠程倉庫,通過git remote add origin https://github.com/guyibang/TEST2.git將本地倉庫和遠程倉庫進行關聯;
5、最後通過git push -u origin master把本地倉庫的項目推送到遠程倉庫(也就是Github)上;(若新建遠程倉庫的時候自動創建了README文件會報錯,解決辦法看上面)。
⑨ 如何將一個d盤的代碼提交到e盤git庫
Git,是Linus花了兩周時間用C寫的一個分布式版本控制系統。牛該怎麼定義?
其實,很多人都不care誰寫了Git,只在乎它是免費而且好用的!So do I!
下面開始我們的學習:
1.Git安裝(略)。
2.創建版本庫
首先,選擇一個合適的地方(我選擇了D盤,我的電腦是Win 7),常見一個空目錄:
$ mkdir Git
$ cd Git
$ pwd//顯示當前的路徑
/d/Git
註:Windows下,路徑名不要包含中文,因為Git對中文支持不給力!
第二步,通過git init命令把這個目錄變成Git可以管理的倉庫:
1
2
$ git init
Initialized empty Git repository in /d/Git/.git/
這樣就創建了你的Git倉庫。
接下來,我們上傳一個文件到Git。編輯一個readme.txt文件,內容如下:
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
將其放到/d/Git目錄下,因為這是一個Git倉庫,放到其他地方Git再厲害也找不到這個文件。
將一個文件放到Git倉庫需要兩步:
(1)使用git add將文件添加到倉庫:
1
$ git add readme.txt
(2)使用git commit將文件提交到倉庫:
git commit -m "wrote a readme file"
[master 48b9a84] wrote a readme file
1 file changed, 2 insertions(+)
註:git commit命令,-m後面輸入的是本次提交的說明,可以輸入任意內容,當然最好是有意義的,這樣你就能從歷史記錄里方便地找到改動記錄。
commit可以一次提交多個文件:
$ git add file1.txt
$ git add file2.txt
$ git add file3.txt
$ git commit -m "add 3 files."
3.Git的命令很多,下面再學習幾個吧!
繼續修改readme.txt文件:
Git is a distributed version control system.
Git is free software.
git status命令看看結果:
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
git status查看倉庫當前的狀態,上面的命令告訴我們,readme.txt被修改過了,但還沒有準備提交的修改。
雖然Git告訴我們readme.txt被修改了,但如果能看看具體修改了什麼內容,自然是很好的。比如你休假兩周從國外回來,第一天上班時,已經記不清上次怎麼修改的readme.txt,所以,需要用git diff這個命令看看:
1
2
3
4
5
6
7
8
9
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
Git is free software.
git diff查看不同!
在工作中,我們可能提交了幾千個文件,如果想看歷史記錄,可以使用git log命令:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ git log
commit
Author: Michael Liao <[email protected]>
Date: Tue Aug 20 15:11:49 2013 +0800
append GPL
commit
Author: Michael Liao <[email protected]>
Date: Tue Aug 20 14:53:12 2013 +0800
add distributed
commit
Author: Michael Liao <[email protected]>
Date: Mon Aug 19 17:51:55 2013 +0800
wrote a readme file<br>………………………………………………………………………………<br>………………………………………………………………………………
commit
Author: lixiaolun <[email protected]>
Date: Thu Jan 15 22:06:05 2015 +0800
wrote a readme file
(END)
註:最後你可能會碰到這個(END),此後你怎麼點都沒有用。那麼現在你要輸入:wq或:q退出。這個命令同linux指令。
git log命令顯示從最近到最遠的提交日誌。如果嫌輸出信息太多,看得眼花繚亂的,可以試試加上
--pretty=oneline參數:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ git log --pretty=oneline
commit a file readme
text1.txt commit
wrote a readme file
2015-1-30 upload
local_gitgub
remove text1.txt
remove text.txt
add test.txt
git tracks changes
add 3 text.txt
understand how stage
modify reamde.txt
add a new word distr
wrote a readme file
友情提示:你看到的一大串類似3628164...882e1e0的是commit id(版本號),和SVN不一樣,Git的commit id不是1,2,3……遞增的數字,而是一個SHA1計算出來的一個非常大的數字,用十六進製表示。
時光穿梭之版本回退!!
如果你提交的一個文件,發現還不如你你上一個版本好,趕緊回退!怎麼做呢?
首先,Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100。
回退到上一個版本的命令git reset:
1
$ git reset --hard HEAD^
--hard參數有啥意義?這個後面再講,現在你先放心使用。
查看文件命令cat readme.txt:
1
2
3
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
git reflog記錄了每一次命令:
$ git reflog
ea34578 HEAD@{0}: reset: moving to HEAD^
3628164 HEAD@{1}: commit: append GPL
ea34578 HEAD@{2}: commit: add distributed
cb926e7 HEAD@{3}: commit (initial): wrote a readme file
前面的數字是commit id。知道commit id可以回退上一次執行的命令,回退命令為git reset --hard <commit id>:
1
$ git reset --hard 3628164
⑩ 怎麼把本地項目,和遠程git倉庫相連通
添加所有文件
git add .
注意最後的點是有用的哦
輸入完成後,文件夾如下所示
3. 提交所有文件
git commit -m "這里是備注信息" -a
完成後,文件夾顯示如下
都會出現綠色的小對勾
4. 連接到遠程倉庫
提前在你的github中新建一個倉庫,操作如下
建好後,取好項目名稱,點擊create repository按鈕,完成倉庫的建立