A. 如何在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
B. git提交前需要把代碼從伺服器更新下來,如果我和朋友都在1.php寫了代碼會咋樣
在伺服器上創建一個git倉庫gitinit 在本地點卯克隆遠程git倉庫到本地gitclone 本地倉庫裡面寫代碼,添加、提交到本地倉庫gitadd ;gitcommit 推送到遠程代碼倉庫gitpush
C. git如何使用
由於Git對於項目的管理很高效,因此現在使用Git的公司很多,在Java開發中,我們經常使用的IDEA和Eclipse都可以很好的集成Git;
在IDEA中,天然集成Git插件,因此我們不需要再額外的進行操作,只需要在本地中安裝Git就可以。
首先我們需要從遠程倉庫將代碼克隆到本地:
git clone https://github.com/test, clone後面跟隨遠程倉庫的鏈接地址
當我們打開本地的Git倉庫項目之後,我們可以在項目中右擊進行Git操作,其中包含提交,拉去,推送等命令。
我們也可以在git->repository->pull將代碼從遠程倉庫拉取下來進行更新
對應命令 git pull
Git基本命令簡介
克隆遠程倉庫到本地:git clone https://github.com/test [myproject],將遠程代碼克隆到本地並重命名myproject(可選)
Git查看遠程倉庫地址: git remote -v
查看修改過的文件列表:git status
查看每個文件的修改對比: git diff
提交文件: git commit -m 『提交信息』 filename
查看提交日誌:git log
查看創建新分支:git branch [name] 如果name不為空則創建一個新的分支name
切換分支: git checkout name 需要切換的分支名name
撤銷對文件的修改: git checkout filename 將filename(文件名)的修改內容撤銷
拉取遠程倉庫代碼: git pull origin/name 如果之前拉取過這個分支,直接使用git pull就可以
將代碼推送到遠程倉庫: git push
.gitignore文件介紹
有時候我們在上傳代碼的時候,只需要將主要的文件上傳即可,對於一些編譯後的文件,我們並不需要上傳,因此我們可以在.gitignore講我們不需要的文件進行過濾;
a.txt 忽略指定文件a.txt
target/ 忽略target路徑下的所有文件
*.class 忽略所有以.class結尾的文件
/project/build/ 路徑在project/build下的所有文件
**/build/ 忽略所有build下的文件
希望以上內容對您有所幫助,點擊這里領取我們線上學習免費課程。更多Java干貨可以持續關注浙江優就業官方網站以及浙江優就業公眾號具體了解哦。如果大家有時間的話,最好是能到我們線下基地進行實地考察。
D. git如何提交本地代碼
首先要先注冊一個自己的GitHub賬號
有了自己的賬號以後,就可以進行登錄,開始創建一個新的項目
創建一個新的項目,填寫項目名稱,描述
新建倉庫下,沒有代碼時,會提示3種方式可以操作代碼同步到git.
我使用第一種命令操作方式:
另外需要先下載Git,這里最好下載最新版本的Git,安裝時如果沒有特殊需求,一直下一步就可以了,安裝完成之後,雙擊打開Git Bash
第一步:cd進入你放項目文件的地址 ,我是放在了這里: E:\regtest
第二步:輸入git init
第三步:輸入git add . 這個是將項目上所有的文件添加到倉庫中的意思,如果想添加某個特定的文件,只需把.換成這個特定的文件名即可。
我是使用了".",把整個文件夾下信息都提交了。
第四步輸入git commit -m "first commit",表示你對這次提交的注釋,雙引號裡面的內容可以根據個人的需要改。
這里如果出現以下內容,則需要你輸入自己的賬號或名字
用上面提示的代碼輸入自己的郵箱或名字
再輸入git commit -m "first commit"時就會成功
第五步輸入git remote add origin https://自己的倉庫url地址(這個url可以到自己的git中創建的倉庫頁面找就是最上面一個輸入欄中的url) 將本地的倉庫關聯到github上,
最後一步,輸入git push -u origin master,這是把代碼上傳到github倉庫的意思。
執行完後,如果沒有異常,會等待幾秒,然後跳出一個讓你輸入Username和Password 的窗口,你只要輸人github的登錄賬號和密碼就行了。
E. 怎麼通過git把代碼上傳到github上
這是我第一次應用git,以下僅供git的初學者參考。
github是一個基於git的代碼託管平台,付費用戶可以建私人倉庫,我們一般的免費用戶只能使用公共倉庫,也就是代碼要公開。這對於一般人來說公共倉庫就已經足夠了。
1.注冊賬戶以及創建倉庫
要想使用github第一步當然是注冊github賬號了。之後就可以創建倉庫了(免費用戶只能建公共倉庫),Create a New Repository,填好名稱後Create,之後會出現一些倉庫的配置信息,這也是一個git的簡單教程。
2.安裝客戶端tortoiseGit
github是服務端,要想在自己電腦上使用git我們還需要一個git客戶端,我這里選用TortoiseGit,他給我們提供了圖形界面的操作。在安裝之前首先需要安裝git,下載地址http://msysgit.github.com/,TortoiseGit下載地址:
http://code.google.com/p/tortoisegit/
裝完後右鍵滑鼠會多出一些選項來,在本地倉庫里右鍵選擇Git Init Here,會多出來一個.git文件夾,這就表示本地git創建成功。右鍵Git Bash進入git命令行,為了把本地的倉庫傳到github,還需要配置ssh key。
3.配置Git
(1) 首先在本地創建ssh key;
$ ssh-keygen -t rsa -C "[email protected]"
後面的[email protected]改為你的郵箱,之後會要求確認路徑和輸入密碼,我們這使用默認的一路回車就行。成功的話會在~/下生成.ssh文件夾,進去,打開id_rsa.pub,復制裡面的key。回到github,進入Account Settings,左邊選擇SSH Keys,Add SSH Key,title隨便填,粘貼key。
4.提交、上傳
(1)接下來在本地倉庫里添加一些文件,比如README,
$ git add README
$ git add README$ git commit -m "first commit"
(2)上傳到github:
$ git push origin master
git push命令會將本地倉庫推送到遠程伺服器。
git pull命令則相反。
修改完代碼後,使用git status可以查看文件的差別,使用git add 添加要commit的文件,也可以用git add -i來智能添加文件。之後git commit提交本次修改,git push上傳到github。
5.gitignore文件
.gitignore顧名思義就是告訴git需要忽略的文件,這是一個很重要並且很實用的文件。一般我們寫完代碼後會執行編譯、調試等操作,這期間會產生很多中間文件和可執行文件,這些都不是代碼文件,是不需要git來管理的。我們在git status的時候會看到很多這樣的文件,如果用git add -A來添加的話會把他們都加進去,而手動一個個添加的話也太麻煩了。這時我們就需要.gitignore了。比如一般c#的項目我的.gitignore是這樣寫的:
bin
.suo
obj
bin和obj是編譯目錄,裡面都不是源代碼,忽略;suo文件是vs2010的配置文件,不需要。這樣你在git status的時候就只會看到源代碼文件了,就可以放心的git add -A了。
F. 公司項目代碼可以提交到git上嗎
可以的,一般情況下想做這個應該把源代碼分成不同的部分,許可權分別管理
一個人只能拿到他自己那一部分的源代碼,別的部分只能拿到編譯後的結果
G. Android開發,切換Git分支等操作,切換後再切回來,編譯時是否需要make clean
如果你當前的環境編譯過,會產生很多編譯過的文件(未提交)。低版本的git,想切分支想切不過去。高版本的git是可以切的,同時會把沒提交的那些文件也帶過去。不做make clean可能也會編譯過。但不一定是你想要的結果。特別是比較底層的東西,切過分支後有改變,但剛才已經編譯過,可能就不編了。編譯結果就跟當前分支的代碼不一致了
H. 為什麼提交代碼到主線前需要編譯臨時版本
編譯程序屬於採用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼(sourcecode)→預處理器(preprocessor)→編譯器(compiler)→目標代碼(objectcode)→鏈接器(Linker)→可執行程序(executables)。
I. 如何使用 Git 和 GitHub 來管理自己的代碼
github是一個基於git的代碼託管平台,付費用戶可以建私人倉庫,我們一般的免費用戶只能使用公共倉庫,也就是代碼要公開。對於一般人來說公共倉庫就已經足夠了,而且我們也沒多少代碼來管理,O(∩_∩)O~。步驟:
1.注冊賬戶以及創建倉庫
要想使用github第一步當然是注冊github賬號了。之後就可以創建倉庫了(免費用戶只能建公共倉庫),Create a New Repository,填好名稱後Create,之後會出現一些倉庫的配置信息,這也是一個git的簡單教程。
2.安裝客戶端msysgit
github是服務端,要想在自己電腦上使用git我們還需要一個git客戶端,我這里選用msysgit,這個只是提供了git的核心功能,而且是基於命令行的。如果想要圖形界面的話只要在msysgit的基礎上安裝TortoiseGit即可。
裝完msysgit後右鍵滑鼠會多出一些選項來,在本地倉庫里右鍵選擇Git Init Here,會多出來一個.git文件夾,這就表示本地git創建成功。右鍵Git Bash進入git命令行,為了把本地的倉庫傳到github,還需要配置ssh key。
3.配置Git
首先在本地創建ssh key;
$
ssh-keygen
-t rsa -C
"[email protected]"
後面的[email protected]改為你的郵箱,之後會要求確認路徑和輸入密碼,我們這使用默認的一路回車就行。成功的話會在~/下生成.ssh文件夾,進去,打開id_rsa.pub,復制裡面的key。
回到github,進入Account Settings,左邊選擇SSH Keys,Add SSH Key,title隨便填,粘貼key。為了驗證是否成功,在git bash下輸入:
$
ssh
-T [email protected]
如果是第一次的會提示是否continue,輸入yes就會看到:You』ve successfully authenticated, but GitHub does not provide shell access 。這就表示已成功連上github。
接下來我們要做的就是把本地倉庫傳到github上去,在此之前還需要設置username和email,因為github每次commit都會記錄他們。
$ git config --global user.name
"your name"
$ git config --global user.email
"[email protected]"
進入要上傳的倉庫,右鍵git bash,添加遠程地址:
$ git remote add origin [email protected]:yourName/yourRepo.git
後面的yourName和yourRepo表示你再github的用戶名和剛才新建的倉庫,加完之後進入.git,打開config,這里會多出一個remote 「origin」內容,這就是剛才添加的遠程地址,也可以直接修改config來配置遠程地址。
4.提交、上傳
接下來在本地倉庫里添加一些文件,比如README,
$ git add README
$ git commit -m
"first commit"
上傳到github:
$ git push origin master
git push命令會將本地倉庫推送到遠程伺服器。
git pull命令則相反。
修改完代碼後,使用git status可以查看文件的差別,使用git add 添加要commit的文件,也可以用git add -i來智能添加文件。之後git commit提交本次修改,git push上傳到github。
5.gitignore文件
.gitignore顧名思義就是告訴git需要忽略的文件,這是一個很重要並且很實用的文件。一般我們寫完代碼後會執行編譯、調試等操作,這期間會產生很多中間文件和可執行文件,這些都不是代碼文件,是不需要git來管理的。我們在git status的時候會看到很多這樣的文件,如果用git add -A來添加的話會把他們都加進去,而手動一個個添加的話也太麻煩了。這時我們就需要.gitignore了。比如一般c#的項目我的.gitignore是這樣寫的:
bin
*.suo
obj
bin和obj是編譯目錄,裡面都不是源代碼,忽略;suo文件是vs2010的配置文件,不需要。這樣你在git status的時候就只會看到源代碼文件了,就可以放心的git add -A了。
6.tag
我們可以創建一個tag來指向軟體開發中的一個關鍵時期,比如版本號更新的時候可以建一個「v2.0」、「v3.1」之類的標簽,這樣在以後回顧的時候會比較方便。tag的使用很簡單,主要操作有:查看tag、創建tag、驗證tag以及共享tag。
6.1查看tag
列出所有tag:
git tag
這樣列出的tag是按字母排序的,和創建時間沒關系。如果只是想查看某些tag的話,可以加限定:
git tag -l v1.*
這樣就只會列出1.幾的版本。
6.2創建tag
創建輕量級tag:
git tag v1.0
這樣創建的tag沒有附帶其他信息,與之相應的是帶信息的tag:
git tag -a v1.0 -m
'first version'
-m後面帶的就是注釋信息,這樣在日後查看的時候會很有用,這種是普通tag,還有一種有簽名的tag:
git tag -s v1.0 -m
'first version'
前提是你有GPG私鑰,把上面的a換成s就行了。除了可以為當前的進度添加tag,我們還可以為以前的commit添加tag:
#首先查看以前的commit
git log --oneline
#假如有這樣一個commit:8a5cbc2 updated readme
#這樣為他添加tag
git tag -a v1.1 8a5cbc2
6.3刪除tag
很簡單,知道tag名稱後:
git tag -d v1.0
6.4驗證tag
如果你有GPG私鑰的話就可以驗證tag:
git tag -v
v1.0
6.5共享tag
我們在執行git push的時候,tag是不會上傳到伺服器的,比如現在的github,創建tag後git push,在github網頁上是看不到tag的,為了共享這些tag,你必須這樣:
git push origin --tags
J. git如何提交代碼
代碼提交
代碼提交一般有五個步驟:
1.查看目前代碼的修改狀態
2.查看代碼修改內容
3.暫存需要提交的文件
4.提交已暫存的文件
5.同步到伺服器
1.查看目前代碼的修改狀態
提交代碼之前,首先應該檢查目前所做的修改,運行git status命令
a)已暫存 (changes to be committed)
2.查看代碼修改的內容
git diff <file>
比較某文件與最近提交節點的差異。
注意:如果該文件已暫存,那麼應該使用git diff –cached<file>
git diff <hashcode> <hashcode> <file>
比較某文件在提交節點a,節點b的差異。
技巧:如果省略後面一個hashcode,則默認表示與上一提交節點比較。(也可以利用^運算符)
3.暫存需要提交的文件
如果是新建的文件
則git add <file>
如果是修改的文件
則git add <file>
如果是刪除的文件
則 git rm <file>
4.提交已暫存的文件
git commit
注意注釋填寫規范。
git commit --amend
修改最近一次提交。有時候如果提交注釋書寫有誤或者漏提文件,可以使用此命令。
5.同步到伺服器
同步到伺服器前先需要將伺服器代碼同步到本地
命令: git pull
如果執行失敗,就按照提示還原有沖突的文件,然後再次嘗試同步。
命令:git checkout -- <有沖突的文件路徑>
同步到伺服器
命令: git push origin <本地分支名>
如果執行失敗,一般是沒有將伺服器代碼同步到本地導致的,先執行上面的git pull命令。