github在備案地執(zhí)行g(shù)it commit 后需要運(yùn)行以下代碼:
1、創(chuàng)建README.md
2、git add README.md
3、git commit -m '第一次提交'
4、git remote add origin https://github.com/mzq412304/caiAPP.git 指本地倉庫和遠(yuǎn)程倉庫建立連接
5、git push -u origin master
碼云提交代碼步驟:
git pull命令的作用是:取回遠(yuǎn)程主機(jī)某個分支的更新,再與本地的指定分支合并。
1、初始化 git init
2、 git remote add origin https://gitee.com/mzq412304/cae_app.git
3、拉取線上代碼: git pull origin master
git pull <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>
例如執(zhí)行下面語句:
git pull origin master:brantest
將遠(yuǎn)程主機(jī)origin的master分支拉取過來,與本地的brantest分支合并。
后面的冒號可以省略:
git pull origin master
表示將遠(yuǎn)程origin主機(jī)的master分支拉取過來和本地的當(dāng)前分支進(jìn)行合并。
上面的pull操作用fetch表示為:
git fetch origin master:brantest
git merge brantest
相比起來git fetch更安全一些,因?yàn)樵趍erge前,我們可以查看更新情況,然后再決定是否合并。
4、提交代碼
git add. 提交所有代碼
5、git commit -m '說明'
6、第一次提交,:git push -u origin master 第二次提交就按照上面的寫法即可
不在需要加 -u: git push origin master
說明:
git push命令用于將本地分支的更新,推送到遠(yuǎn)程主機(jī)。它的格式與git pull命令相仿
$ git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
注意:這里的冒號:前后是必須沒有空格的。
注意:
分支推送順序的寫法是<來源地>:<目的地>,所以git pull是<遠(yuǎn)程分支>:<本地分支>,而git push是<本地分支>:<遠(yuǎn)程分支>。
如果省略遠(yuǎn)程分支名,則表示將本地分支推送與之存在"追蹤關(guān)系"的遠(yuǎn)程分支(通常兩者同名),如果該遠(yuǎn)程分支不存在,則會被新建。
$ git push origin master 上面命令表示,將本地的master分支推送到origin主機(jī)的master分支。如果后者不存在,則會被新建。
如果省略本地分支名,則表示刪除指定的遠(yuǎn)程分支,因?yàn)檫@等同于推送一個空的本地分支到遠(yuǎn)程分支。
$ git push origin :master #等同于 $ git push origin --delete master
上面命令表示刪除origin主機(jī)的master分支
如果當(dāng)前分支與遠(yuǎn)程分支之間存在追蹤關(guān)系,則本地分支和遠(yuǎn)程分支都可以省略。
$ git push origin
上面命令表示,將當(dāng)前分支推送到origin主機(jī)的對應(yīng)分支。
如果當(dāng)前分支只有一個追蹤分支,那么主機(jī)名都可以省略。
$ git push
如果當(dāng)前分支與多個主機(jī)存在追蹤關(guān)系,則可以使用-u選項(xiàng)指定一個默認(rèn)主機(jī),這樣后面就可以不加任何參數(shù)使用git push
$ git push -u origin master
上面命令將本地的master分支推送到origin主機(jī),同時指定origin為默認(rèn)主機(jī),后面就可以不加任何參數(shù)使用git push了。
二、常用命令
1、初始化:git init 創(chuàng)建一個git倉庫,創(chuàng)建之后就會在當(dāng)前目錄生成一個.git的文件
2、添加文件:git add filename 把文件添加到緩沖區(qū)
3、添加所有文件到緩沖區(qū) git add .或者 git add --all(從目前掌握的水平看,和后面加“.”的區(qū)別在于,加all可以添加被手動刪除的文件,而加“.”不行):
4、刪除文件 git rm filename
提交:提交緩沖區(qū)的所有修改到倉庫(注意:如果修改了文件但是沒有add到緩沖區(qū),也是不會被提交的)
5、git commit -m "提交的說明"
6、commit可以一次提交緩沖區(qū)的所有文件
查看git庫的狀態(tài),未提交的文件,分為兩種,add過已經(jīng)在緩沖區(qū)的,未add過的
7、查看狀態(tài) git status
8、查看日志 git log
9、版本回退:git reset 可以將當(dāng)前倉庫回退到歷史的某個版本
10、git reset --hard HEAD^ 第一種用法:回退到上一個版本(HEAD代表當(dāng)前版本,有一個^代表上一個版本,以此類推)
git reset --hard d7b5 第二種用法:回退到指定版本(其中d7b5是想回退的指定版本號的前幾位)
11、查看命令歷史:git reflog 查看倉庫的操作歷史
12、查看提交版本 git log
1) git config --global user.name 'mzq304' // 查看git用戶名
2) git config --global user.email '8278@qq.com' // 查看git郵箱
3) git log --oneline // 查看所有提交的版本號
13、git reflog // 查看每次操作對應(yīng)的commitId賬號
git reset --hard commitId // 本地端口回滾指定的版本
git push -f // 強(qiáng)制推送到遠(yuǎn)程分支
14、回滾版本
1) git reset --hard HEAD^,回滾到上個版本
2) git reset --hard HEAD^~2,回滾到前兩個版本
3) git reset --hard xxx(版本號或版本號前幾位),回滾到指定版本號,如果是版本號前幾位,git會自動尋找匹配的版本號
4) git reset --hard xxx(版本號或版本號前幾位) filename,回滾某個文件到指定版本號(需要進(jìn)入該文件所在目錄)
5) git reset --hard 希哈值
三、git分支管理
1、查看分支的情況,git branch 前面帶*號的就是當(dāng)前分支
2、創(chuàng)建分支 git branch 分支名
3、切換當(dāng)前分支到指定分支: git checkout 分支名
4、創(chuàng)建分支并切換到創(chuàng)建的分支 git checkout -b 分支名
5、合并某分支的內(nèi)容到當(dāng)前分支 git merge 分支名
6、刪除分支 git branch -d 分支名
注意:
如果兩個分支同時進(jìn)行了同一個文件的修改和提交,在merge時就會產(chǎn)生沖突,首先要手動打開文件解決沖突,再提交,就相當(dāng)于進(jìn)行了merge
兩個分支分別進(jìn)行了commit,最新的一次提交將兩個分支內(nèi)容進(jìn)行了合并
7、查看分支合并圖 git log --graph
8、新建標(biāo)簽 git tag 標(biāo)簽名 版本號 默認(rèn)為最新版本,后面加上版本號參數(shù)則可指定版本增加標(biāo)簽
9、查看所有標(biāo)簽 git tag
10、查看標(biāo)簽的詳細(xì)信息 git show 標(biāo)簽名
11、將tag提交到遠(yuǎn)端倉庫 推送所有tag: git push origin --tags
12、推送某個tag:git push origin v1.0
13、將本地倉庫內(nèi)容推送到遠(yuǎn)端倉庫 git push -u origin master (-u 表示第一次推送master分支的所有內(nèi)容,后面再推送就不需要-u了),
跟commit的區(qū)別在于一個是提交到本地倉庫,一個是提交到遠(yuǎn)程倉庫
14、從遠(yuǎn)端庫更新內(nèi)容到本地(相當(dāng)于svn的update) git pull
注意:tips:如果push的時候,本地和文件和遠(yuǎn)端文件有沖突,就要先pull、然后手動解決沖突,才能繼續(xù)push
15、git記住用戶名密碼
push的時候默認(rèn)每次都需輸入GitHub的用戶名和密碼,在git倉庫根目錄下.git文件夾的config文件末尾增加如下內(nèi)容,
即可記住用戶名密碼,無需每次推送都輸入了 [credential] helper = store
注意:
提交到git時,忽略部分IDE產(chǎn)生的文件,在根目錄下創(chuàng)建.gitignore文件, 注意:新加.gitignore只能忽略那些原來沒有被提交過的文件,如果某些文件已經(jīng)被納入了版本管理中,
則修改.gitignore是無效的。解決方法就是先把本地緩存刪除(改變成未track狀態(tài)),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
四、
1、git clone 之后才想要提交代碼怎么辦?
主要的問題來自于git remote的地址問題,那么我們要做的首先應(yīng)該是將本地與當(dāng)前遠(yuǎn)程remote切斷聯(lián)系。然后需要添加一個新的遠(yuǎn)程倉庫,這個新的倉庫從何而來呢?就需要我們對原倉庫進(jìn)行fork了,之后就是使用剛剛文章中提到的添加遠(yuǎn)程的方法。
第一步: 與當(dāng)前遠(yuǎn)程remote切斷。 git remote remove origin 取消本地目錄下關(guān)聯(lián)的遠(yuǎn)程庫
第二步: 對原倉庫進(jìn)行fork,添加遠(yuǎn)程 git remote add origin git@github.com:mzq412304/shequn.git https://gitee.com/mzq304/shequn.git
第三步: git push origin master
后面按照之前的方法上傳提交代碼即可。
說明:
在clone代碼庫到本地的時候,采用SSH加密的方式的話,在git push的時候是無須輸入遠(yuǎn)程倉庫的github賬戶密碼的,SSH的寫法就像下面這樣:
git@github.com:git_username/repository_name.git 到了git push的時候,自然還是需要我們老老實(shí)實(shí)輸入賬號密碼的
2、使用Git下載指定分支命令為:git clone -b 分支名倉庫地址
如: 使用Git下載v.2.8.1分支代碼,使用命令:git clone -b v2.8.1 https://git.oschina.net/oschina/android-app.git
解釋命令:-b表示要從分支下載,v2.8.1就是具體的某個分支的名稱,https://git.oschina.net/oschina/android-app.git這是app源碼的git倉庫地址
報錯集:
1、The file will have its original line endings in your working directory
原因:是在windows下生成的所以換行和 linux 確實(shí)不同可能是因?yàn)檫@個導(dǎo)致的
解決方法:git config --global core.autocrlf false
2、 refusing to merge unrelated histories
原因:最主要原因還是在于本地倉庫和遠(yuǎn)程倉庫實(shí)際上是獨(dú)立的兩個倉庫。假如我之前是直接clone的方式在本地建立起遠(yuǎn)程github倉庫的克隆本地倉庫就不會有這問題了。
解決方法:
3、Your local changes to the following files would be overwritten by merge
原因:
解決方法:
1) 服務(wù)器代碼合并本地代碼
$ git stash //暫存當(dāng)前正在進(jìn)行的工作。
$ git pull origin master //拉取服務(wù)器的代碼
$ git stash pop //合并暫存的代碼
2) 服務(wù)器代碼覆蓋本地代碼
$ git reset --hard //回滾到上一個版本
$ git pull origin master
4、 RPC failed; HTTP 413 curl 22 The requested URL returned error
解決方法:git config http.postBuffer 524288000
聯(lián)系客服