① 如何將本地代碼上傳至git倉庫
注意:安裝的前提條件是配置好Git的相關環境或者安裝好git.exe,此處不再重點提及
上傳的步驟:(本文採用git 命令界面進行操作)
( git config --global user.email "[email protected]"
git config --global user.name "Your Name")實現登陸
1.進入本地的項目目錄,右鍵「Git Bash here」,調出git命令行界面,然後輸入
[plain] view plain 在CODE上查看代碼片派生到我的代碼片
git init
2.就是將目錄下的所有文件上傳,也可以將「.」換成具體的文件名
[plain] view plain 在CODE上查看代碼片派生到我的代碼片
git add .
3.將項目提交到gitHub
[html] view plain 在CODE上查看代碼片派生到我的代碼片
git commit -m "注釋語句"
4.在github上創建新的repository
5.點擊 「Create repository」跳轉到一個連接,如下紅色圈獲取到本項目的github地址
6.將本地的代碼關聯到github上
[html] view plain 在CODE上查看代碼片派生到我的代碼片
git remote add origin 項目的github地址
7.上傳代碼到github之前需要先pull
[plain] view plain 在CODE上查看代碼片派生到我的代碼片
git pull origin master
8.上傳代碼到遠程倉庫
[plain] view plain 在CODE上查看代碼片派生到我的代碼片
git push -u origin master
之後輸入賬號,密碼,上傳到github
② 如何上傳代碼到github
注冊GitHub後你就會有0.3G的免費空間,不過只能創建公開項目,這也滿足代碼分享的目的,我最喜歡的倒是它的代碼展示方式,可以直接瀏覽你的代
碼,代碼是經過高亮、添加行號處理過的,十分漂亮,體驗一流,比如這個Webpy託管的地方。而作為想要了解你代碼的人,可以選擇直接在線瀏覽自己感興趣
的,也可以直接下載壓縮包,或者直接使用Git clone到本地。
因為GitHub是基於Git版本控制系統,所以你上傳修改代碼什麼的,都需
要使用Git工具。我這里主要是用來分享和展示代碼,所以不想在版本控制方面做過多的闡述,下面就簡單講解一下怎麼在GitHub上新建一個項目,還有把
自己的代碼傳上去。下面的前提是你已經注冊了GitHub和下載安裝了Git——Git下載、Windows版本下載。
上傳分享代碼
1.在GitHub上建立項目
登
錄GitHub後,你可以在右邊靠中那裡找到一個按鈕「New
Repository」,點擊過後,填入項目名稱、說明和網址過後就可以創建了,然後會出現一個提示頁面,記下類似
[email protected]:XXX/XXX.git的地址,這個就是你這個項目的地址了。
2.配置Git以及上傳代碼
安裝Git成功後,如果是Windows下,選擇Git Bash,在命令行中完成一切,可能開始有點麻煩,不過就那幾條命令行,用幾次就記住啦。首先初始設置Git:
1 git config --global user.name "Your Real Name" 2 git config --global user.email [email protected]
然後開始進行最麻煩的一步了,你需要上傳文件到GitHub的Git系統上,得需要一個SSH密匙來認證,下面就開始生成密鑰和提交密鑰。打開Git Bash,創建SSH key:
1 ssh-keygen -C '[email protected]' -t rsa
然
後要你輸入SSH密匙的存放位置,可以不管,直接回車使用默認路徑。再輸入你想要的密碼,SSH
key就生成了。現在你需要將這個Key提交到GitHub,首先打開Key保存的位置,裡面會有三個文件,找到id_rsa.pub,用文本編輯器打
開,復制裡面的全部字元。到GitHub,在右上方工具欄里找到Account Settings。在這個頁面上有一個SSH Public
Keys標簽,選擇Add another public key。Title可以隨便填一個,Key就粘貼剛才的字元,提交。
完成這些工作後,就可以上傳自己的代碼了。找到自己要分享上傳的代碼文件夾,右擊選擇Git Bash,或者在Git Bash中進入這個文件夾。建立一個倉庫:
1 git init
選擇要添加進倉庫的文件:
1 git add .
一般如果你想分享這個文件夾里的所有代碼,就在 add後面加「.」,上面的例子就是這樣,如果傳指定的,只需要把「.」改為文件名即可,現在只是選擇了要加入倉庫的文件,下面才是添加進入倉庫:
1 git commit -m 'Test'
-m後面跟一個參數,表示說明,將代碼提交到GitHub後,將會在代碼文件信息上顯示這個說明,如下圖標記的地方。
搞了這么久,現在才開始把本地倉庫上傳到GitHub了,下面兩行命令搞定問題:
1 2 git remote add origin [email protected]:XXX/XXX.git 3 git push -u origin master
這個[email protected]:XXX/XXX.git就是上面創建項目是生成的地址。現在打開你的項目網址,你就可以發現你的代碼已經展示出來了。如果你要更新代碼的話,就重復上面的吧。
如
果提交了敏感信息,比如代碼中設置的自己的密碼什麼的忘刪除就上傳上去了怎麼辦?重新修改過後上傳依然有歷史記錄,而使用Git刪除歷史記錄貌似很麻煩,
於是就採用刪除項目吧,刪除了再重新上傳。刪除項目需要在GitHub網站上右上方找到admin按鈕,進去後右邊最下面有個刪除的按鈕,這樣就可以刪除
了。
一些可能遇到的問題解決:
如果輸入$ git remote add origin [email protected]:djqiang(github帳號名)/gitdemo(項目名).git
提示出錯信息:fatal: remote origin already exists.
解決辦法如下:
1、先輸入$ git remote rm origin
2、再輸入$ git remote add origin [email protected]:djqiang/gitdemo.git 就不會報錯了!
3、如果輸入$ git remote rm origin 還是報錯的話,error: Could not remove config section 『remote.origin』. 我們需要修改gitconfig文件的內容
4、找到你的github的安裝路徑,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_\etc
5、找到一個名為gitconfig的文件,打開它把裡面的[remote "origin"]那一行刪掉就好了!
如果輸入$ ssh -T [email protected]
出現錯誤提示:Permission denied (publickey).因為新生成的key不能加入ssh就會導致連接不上github。
解決辦法如下:
1、先輸入$ ssh-agent,再輸入$ ssh-add ~/.ssh/id_key,這樣就可以了。
2、
如果還是不行的話,輸入ssh-add ~/.ssh/id_key 命令後出現報錯Could not open a connection to
your authentication agent.解決方法是key用Git
Gui的ssh工具生成,這樣生成的時候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行
來做。
3、最好檢查一下在你復制id_rsa.pub文件的內容時有沒有產生多餘的空格或空行,有些編輯器會幫你添加這些的。
如果輸入$ git push origin master
提示出錯信息:error:failed to push som refs to …….
解決辦法如下:
1、先輸入$ git pull origin master //先把遠程伺服器github上面的文件拉下來
2、再輸入$ git push origin master
3、
如果出現報錯 fatal: Couldn』t find remote ref master或者fatal: 『origin』 does not
appear to be a git repository以及fatal: Could not read from remote
repository.
4、則需要重新輸入$ git remote add [email protected]:djqiang/gitdemo.git
使用git在本地創建一個項目的過程
$ makdir ~/hello-world //創建一個項目hello-world
$ cd ~/hello-world //打開這個項目
$ git init //初始化
$ touch README
$ git add README //更新README文件
$ git commit -m 『first commit』 //提交更新,並注釋信息「first commit」
$ git remote add origin [email protected]:defnngj/hello-world.git //連接遠程github項目
$ git push -u origin master //將本地項目更新到github項目上去
③ 如何將本地的代碼上傳到github
首先你需要一個github賬號,所有還沒有的話先去注冊吧!
https://github.com/
我們使用git需要先安裝git工具,這里給出下載地址,下載後一路直接安裝即可:
https://git-for-windows.github.io/
1.進入Github首頁,點擊New repository新建一個項目
2.填寫相應信息後點擊create即可
Repository name: 倉庫名稱
Description(可選): 倉庫描述介紹
Public,Private: 倉庫許可權(公開共享,私有或指定合作者)
Initialize this repository with a README: 添加一個README.md
gitignore: 不需要進行版本管理的倉庫類型,對應生成文件.gitignore
license: 證書類型,對應生成文件LICENSE
④ 如何將代碼上傳到git伺服器上
1、本地公鑰的獲取,
cd ~/.ssh
ls
使用指令ssh-keygen,生產公鑰,第一個提示時輸入文件(默認是id_rsa),第二個提示時輸入的是密鑰,
公鑰放置在id_rsa.pub文件中。
2、按照code的提示,進行代碼上傳。
2.1 建立一個git文件件,比如git_csdn ,
2.2 git init,建倉操作,
2.3 可以新建一個readme.md,touch README.md
2.4git add.添加所有文件,git add file,添加file,比如git add README
2.5git commit -m "first commit"
2.6git remote add origin git @ url 地址
2.7git push -u origin master
3、git clone 地址
4、git remote不帶參數,列出已經存在的遠程分支
$ git remote
origin
5、配置:
$ git config --global user.name "John Doe"
$ git config --global [email protected]
出現的問題:Updates were rejected because the tip of your current branch is behind
有如下幾種解決方法:
1.使用強制push的方法:
$ git push -u origin master -f
這樣會使遠程修改丟失,一般是不可取的,尤其是多人協作開發的時候。
2.push前先將遠程repository修改pull下來
$ git pull origin master
$ git push -u origin master
3.若不想merge遠程和本地修改,可以先創建新的分支:
$ git branch [name]
然後push
$ git push -u origin [name]
分支管理:
1、創建分支: git branch new_branch
2、查看分支:git branch
3、刪除分支:git branch -d new_branch
4、切換分支:git checkout new_branch
5、創建分支並切換分支: git checkout -b new_branch即可在本地新建分支,並使用該分支track遠程分支
6、提交並推送分支:
git add .
git commit -m "xxx"
git push -u origin new_branch
7、刪除遠程分支:git push origin --delete new_branch
8、合並分支: git merge new_branch
9、將本地更新上傳到遠程分支上:
例如本地新建或是更新了內容newfile.c文件,
首先git add newfile.c,
然後git commit -m "add new file",
緊接著git push 本地分支名 遠程分支名即可將本地分支更新到遠程分支。
10.獲取遠程分支
git fetch 從遠程獲取其他用戶push上來的新分支
git remote -v 即可查看遠程所有的版本信息
⑤ 如何將自己寫的代碼上傳到github上
①首先注冊github賬號,登錄,創建新倉庫
,點擊+,點擊new repository
得到如下頁面,填寫倉庫名,自己隨便寫一個名字,下面的描述可寫可不寫,點擊Initialize this repository with a README,然後創建:
6.在此處打開git bash,輸入如下命令:
git init
git add "文件名"
git commit -m "文件名"
如果出現讓你設置用戶名和用戶郵箱的提示,就按照提示上給的命令輸入即可。後再次執行上面commit的命令。
git remote add origin https://github.com/zhangsiyao11/chat http為你自己倉庫的地址
如果出現錯誤:
fatal: remote origin already exists
則執行以下語句:
git remote rm origin
再執行git remote add origin https://github.com/zhangsiyao11/chat即可。
git pull origin master
git push origin master
完成,再打開自己的倉庫就會出現剛剛上傳的項目文件:
終於寫完了,希望對大家有所幫助。
⑥ 怎樣將svn庫中的代碼遷移到git庫
下面開始我們的學習:
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上上傳代碼
注冊賬戶以及創建倉庫
要想使用github第一步當然是注冊github賬號了。之後就可以創建倉庫了(免費用戶只能建公共倉庫),Create a New Repository,填好名稱後Create,之後會出現一些倉庫的配置信息,這也是一個git的簡單教程。步驟如下:
打開https://github.com直接在首頁上注冊
2)上傳到github
$ git push origin master
git push命令會將本地倉庫推送到遠程伺服器。
git pull命令則相反。
註:首次提交,先git pull下,修改完代碼後,使用git status可以查看文件的差別,使用git add 添加要commit的文件。
大功告成,現在你知道如何將本地的項目提交到github上了。
gitignore文件
.gitignore顧名思義就是告訴git需要忽略的文件,這是一個很重要並且很實用的文件。一般我們寫完代碼後會執行編譯、調試等操作,這期間會產生很多中間文件和可執行文件,這些都不是代碼文件,是不需要git來管理的。我們在git status的時候會看到很多這樣的文件,如果用git add -A來添加的話會把他們都加進去,而手動一個個添加的話也太麻煩了。這時我們就需要.gitignore了。
Git命令
查看、添加、提交、刪除、找回,重置修改文件
git help <command> # 顯示command的helpgit show # 顯示某次提交的內容 git show $idgit co -- <file> # 拋棄工作區修改git co . # 拋棄工作區修改git add <file> # 將工作文件修改提交到本地暫存區git add . # 將所有修改過的工作文件提交暫存區git rm <file> # 從版本庫中刪除文件git rm <file> --cached # 從版本庫中刪除文件,但不刪除文件git reset <file> # 從暫存區恢復到工作文件git reset -- . # 從暫存區恢復到工作文件git reset --hard # 恢復最近一次提交過的狀態,即放棄上次提交後的所有本次修改git ci <file> git ci . git ci -a # 將git add, git rm和git ci等操作都合並在一起做git ci -am "some comments"git ci --amend # 修改最後一次提交記錄git revert <$id> # 恢復某次提交的狀態,恢復動作本身也創建次提交對象git revert HEAD # 恢復最後一次提交的狀態
查看文件diff
git diff <file> # 比較當前文件和暫存區文件差異 git diffgit diff <id1><id2> # 比較兩次提交之間的差異git diff <branch1>..<branch2> # 在兩個分支之間比較git diff --staged # 比較暫存區和版本庫差異git diff --cached # 比較暫存區和版本庫差異git diff --stat # 僅僅比較統計信息
查看提交記錄
git log git log <file> # 查看該文件每次提交記錄git log -p <file> # 查看每次詳細修改內容的diffgit log -p -2 # 查看最近兩次詳細修改內容的diffgit log --stat #查看提交統計信息
tig
Mac上可以使用tig代替diff和log,brew install tig
Git 本地分支管理
查看、切換、創建和刪除分支
git br -r # 查看遠程分支git br <new_branch> # 創建新的分支git br -v # 查看各個分支最後提交信息git br --merged # 查看已經被合並到當前分支的分支git br --no-merged # 查看尚未被合並到當前分支的分支git co <branch> # 切換到某個分支git co -b <new_branch> # 創建新的分支,並且切換過去git co -b <new_branch> <branch> # 基於branch創建新的new_branchgit co $id # 把某次歷史提交記錄checkout出來,但無分支信息,切換到其他分支會自動刪除git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來,創建成一個分支git br -d <branch> # 刪除某個分支git br -D <branch> # 強制刪除某個分支 (未被合並的分支被刪除的時候需要強制)
分支合並和rebase
git merge <branch> # 將branch分支合並到當前分支git merge origin/master --no-ff # 不要Fast-Foward合並,這樣可以生成merge提交git rebase master <branch> # 將master rebase到branch,相當於: git co <branch> && git rebase master && git co master && git merge <branch>
Git補丁管理(方便在多台機器上開發同步時用)
git diff > ../sync.patch # 生成補丁git apply ../sync.patch # 打補丁git apply --check ../sync.patch #測試補丁能否成功
Git暫存管理
git stash # 暫存git stash list # 列所有stashgit stash apply # 恢復暫存的內容git stash drop # 刪除暫存區Git遠程分支管理
git pull # 抓取遠程倉庫所有分支更新並合並到本地git pull --no-ff # 抓取遠程倉庫所有分支更新並合並到本地,不要快進合並git fetch origin # 抓取遠程倉庫更新git merge origin/master # 將遠程主分支合並到本地當前分支git co --track origin/branch # 跟蹤某個遠程分支創建相應的本地分支git co -b <local_branch> origin/<remote_branch> # 基於遠程分支創建本地分支,功能同上
git push # push所有分支
git push origin master # 將本地主分支推到遠程主分支git push -u origin master # 將本地主分支推到遠程(如無遠程主分支則創建,用於初始化遠程倉庫)git push origin <local_branch> # 創建遠程分支, origin是遠程倉庫名git push origin <local_branch>:<remote_branch> # 創建遠程分支git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>),然後再push刪除遠程分支
Git遠程倉庫管理
git remote -v # 查看遠程伺服器地址和倉庫名稱git remote show origin # 查看遠程伺服器倉庫狀態git remote add origin git@ github:robbin/robbin_site.git # 添加遠程倉庫地址git remote set-url origin git@ github.com:robbin/robbin_site.git # 設置遠程倉庫地址(用於修改遠程倉庫地址) git remote rm <repository> # 刪除遠程倉庫
創建遠程倉庫
git clone --bare robbin_site robbin_site.git # 用帶版本的項目創建純版本倉庫scp -r my_project.git git@ git.csdn.net:~ # 將純倉庫上傳到伺服器上mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在伺服器創建純倉庫git remote add origin git@ github.com:robbin/robbin_site.git # 設置遠程倉庫地址git push -u origin master # 客戶端首次提交git push -u origin develop # 首次將本地develop分支提交到遠程develop分支,並且trackgit remote set-head origin master # 設置遠程倉庫的HEAD指向master分支
也可以命令設置跟蹤遠程庫和本地庫
git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop