真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Git簡單介紹以及使用入門

Git

Git:分布式版本控制系統(tǒng), 此外還有 SVN (集中式版本控制系統(tǒng))

為江華等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及江華網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)、江華網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

下載地址(阿里云鏡像) :CNPM Binaries Mirror (npmmirror.com)

Git Bash : Linux命令行風格 (推薦使用)

Git CMD: window命令行風格

Git UID : 圖形界面

提示: 下面都是在Linux風格命令行下演示, 在Linux命令行中下,#號后面代表的是注釋,用于解釋說明

工具使用技巧: 命令行切換目錄麻煩,可以在直接打開該目錄,再鼠標右擊進入Git Bash

配置

使用Git必須配置用戶名和郵箱(不需要是真實的郵箱)

git config --global --list   # 查看全局配置,即用戶配置
git config --system --list   # 查看系統(tǒng)配置
git config --global user.name "名字"
git config --global user.email @qq.com

Git配置文件

系統(tǒng)配置文件在: 安裝路徑\Git\etc\gitconfig

用戶配置文件 C:\Users\當前用戶名.gitconfig

Git基本原理(理論)

工作區(qū)域

Git 在本地有三個工作區(qū)域:, 工作目錄(Working Directory) , 暫存區(qū)(Stage/index) , 資源庫(Git Directory或Repsoitory), 遠程的Git倉庫如GItHub或Gitee碼云(Remole Directory)共四個工作區(qū)域,轉(zhuǎn)換關(guān)系如下:

? (圖片來自狂神說)

工作目錄 add => 添加到暫存區(qū) , commit => 提交到本地倉庫 ,push => 推送到遠程倉庫

  • 工作區(qū): 平時項目代碼存放的地方,是真實的目錄

  • 暫存區(qū): 用于臨時存代碼的改動,實際上只是一個文件,記錄了即將提交到文件列表的信息,并不是真實目錄

  • 本地倉庫: 安全存放數(shù)據(jù)的位置(實際上存在于.git目錄中),存有所有版本的數(shù)據(jù),其中HEAD文件指向最新放入倉庫的版本

  • 遠程倉庫:相當于網(wǎng)盤

    注: HEAD文件在倉庫目錄的隱藏文件.git文件中,此文件記錄了分支數(shù)以及分支指向,

基本流程

  1. 在工作目錄添加,修改文件; 相當于我們?nèi)粘oding的項目文件目錄
  2. 將需要進行版本管理的文件放入暫存區(qū) 對應(yīng)命令 git add
  3. 將暫存區(qū)的文件提交到本地倉庫 對應(yīng)命令 git commit
  4. (可選) 提交到遠程倉庫 對應(yīng)命令 git add push
git管理的文件狀態(tài):
是否跟蹤(untrack,track):

文件在工作目錄且未被git管理就是屬于未跟蹤,并且是屬于未暫存的,

是否暫存 (unstage,stage):

當文件已經(jīng)被添加到暫存區(qū)后,就屬于暫存狀態(tài)了,但是git管理的文件被修改后,又會變成未暫存狀態(tài)

已修改(modfiied):

顧名思義,也就是當暫存區(qū)的文件被修改后,文件會變成已經(jīng)修改狀態(tài),并且屬于未狀態(tài),不過請注意,未跟蹤的文件由于是未被git管理,故未跟蹤的文件即使被修改也還是未跟蹤狀態(tài)

已提交(commited):

顧名思義,也就是被提交到本地倉庫的文件,此外,請注意本地倉庫在隱藏目錄.git中,并且只保存一些修改記錄信息,所以并不能在本地倉庫中真實的查看到代碼或文件內(nèi)容 ,咱們能正常查看到的文件是屬于工作區(qū)的(這也就意味著我們修改文件后,并不能直接查看到原來的文件內(nèi)容)

命令(速查)

git init  # 在當前目錄初始化git項目
git clone url  #克隆一個遠程倉庫項目到本地,url是項目鏈接; 克隆會初始化本地庫,拉去代碼,起一個默認別名
git status [文件名]# 查看倉庫(文件)狀態(tài)
git add 文件名 # 添加文件到暫存區(qū)
git rm --cached 文件名  # 將文件從暫存區(qū)移除,相當于標記為未跟蹤,不刪除本地文件
git commit -m "日志信息" 文件名  # 提交到本地倉庫
git reflog # 查看歷代版本信息
git log # 查看詳細版本
git reset --hard 版本號  # 切換版本
git push 遠程庫的別名或url 分支名  #將本地庫推送到遠程庫
git pull 遠程庫的別名或url 分支名  #將本地庫拉取到遠程庫
# 以下不常用
git git restore 文件名 #恢復(fù),這個命令針對已修改但還未添加到暫存區(qū)的文件,撤銷本次修改操作,文件將恢復(fù)成未修改之前的樣子
git restore --staged 文件名 #恢復(fù)暫存的文件,這個命令針對已修改并且已經(jīng)添加到暫存區(qū)的文件,相當于撤銷本次添加到暫存區(qū)操作
# 分支管理命令
git branch 分支名  # 創(chuàng)建分支
git branch -v  # 查看分支
git checkout # 切換分支
git merge 分支名 # 把指定的分支合并到當前分支下
# 別名管理命令
git remote -v  #查看所有遠程鏈接別名
git remote add 別名 遠程地址url   #添加別名
git remote remove 別名 #刪除別名

分支

為了提高開發(fā)效率,開建立多個分支進行協(xié)同開發(fā),分支可簡單理解為一個單獨的副本(底層是指針的引用),

基本開發(fā)流程

? ( 圖片來自尚硅谷 )

分支協(xié)同開發(fā)

? ( 圖片來自尚硅谷 )

master分支:代表項目上線正式版本

hot-fix 分支: 項目熱維護分支,不需要將部署的項目停止運行

feature-bule: 開發(fā)分支

feature-game: 開發(fā)分支

分支操作(命令)

git branch 分支名  # 創(chuàng)建分支
git branch -v  # 查看分支
git checkout # 切換分支
git merge 分支名 # 把指定的分支合并到當前分支下

團隊協(xié)作

團隊內(nèi)協(xié)作

? (圖片來自尚硅谷)

跨團隊協(xié)作

? (圖片來自尚硅谷)

遠程倉庫

相關(guān)命令
git remote -v  #查看所有遠程鏈接別名
git remote add 別名 遠程地址url   #添加別名
git push 遠程庫別名或url # 將本地框推送至遠程庫
git pull 遠程庫別名或url # 將遠程庫拉取到本地
git remote remove 別名 #刪除別名

樣例:

以下所有案例都是連續(xù)的操作

初次提交

有如下案例,在testGit項目中存在一個hello.txt文件,從未追蹤到提交到本地庫生成版本信息如下:

后續(xù)修改

如下代碼賦值終端信息為了方便觀看,接上面的案例

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ ls -lh     # 查看當前所有文件信息
total 1.0K
-rw-r--r-- 1 Lenovo  12 Feb 11 22:55 hello.txt    # 當前目錄存在一個hello.txt文件

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ cat hello.txt    # 查看文件內(nèi)容,內(nèi)容為: \n hello java

hello java
Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ echo "hello javaweb!!!" >> hello.txt     # Linux命令(通過管道)向hello.txt文件追加內(nèi)容,模擬修改代碼
echo "hello javawebcat hello.txt !" >> hello.txt

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ cat hello.txt   # 再次查看文件內(nèi)容 文件內(nèi)容為: \n hello javahello javawebcat hello.txt !

hello javahello javawebcat hello.txt !

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git status  # 查看狀態(tài),可發(fā)現(xiàn)文件被修改后又變成了未暫存狀態(tài)
On branch master
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git restore ..." to discard changes in working directory)
        modified:   hello.txt

no changes added to commit (use "git add" and/or "git commit -a")

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git add hello.txt   # 添加文件到暫存區(qū)
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git status    # 再次查看狀態(tài),和第一提交差不多,文件已經(jīng)在暫存區(qū)中,但還未提交
On branch master
Changes to be committed:
  (use "git restore --staged ..." to unstage)
        modified:   hello.txt


Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git commit -m "second commit" hello.txt  # 將修改后的文件提交到本地倉庫
warning: LF will be replaced by CRLF in hello.txt.  # 這里的警告是說window和linux換行符不同的原因,不用在意
The file will have its original line endings in your working directory
[master 1db21ac] second commit  # 提交成功后,又有一個版本號,以及提交者編寫的信息
 1 file changed, 1 insertion(+), 1 deletion(-)

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git reflog  # 查看日志
1db21ac (HEAD -> master) HEAD@{0}: commit: second commit
63c7412 HEAD@{1}: commit (initial): frist commit  
  #(HEAD -> master)所在的版本號表示master分支的當前版本(指向)
  
Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git log   # 查看詳細日志
commit 1db21ac75f97fdd8bc9dfed2e57eb430c3153b5b (HEAD -> master)  
Author: lqy <@qq.com>
Date:   Sat Feb 12 00:00:04 2022 +0800

    second commit

commit 63c7412ca2d0cc5a4a6a4cd1770e1e75a7
Author: lqy <@qq.com>
Date:   Fri Feb 11 23:20:39 2022 +0800

    frist commit

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$

版本穿梭,代碼回滾

接上面兩個案例,將版本切換為初代版本

版本切換會將造成本地工作區(qū)的文件內(nèi)容修改,但本質(zhì)是git在操作HEAD指針


Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git reflog # 查看歷代版本
1db21ac (HEAD -> master) HEAD@{0}: commit: second commit
63c7412 HEAD@{1}: commit (initial): frist commit

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git reset --hard 63c7412  # 切換版本
HEAD is now at 63c7412 frist commit  # 提示HEAD指針現(xiàn)在指向第一個版本

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$

查看創(chuàng)建分支,多分支提交

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git branch -v   # 查看分支,目錄名后面的括號代表了當前所處分支.即現(xiàn)在在master分支下
* master 1db21ac second commit

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git branch hot-fix  #創(chuàng)建分支

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git branch -v   # 查看分支
  hot-fix 1db21ac second commit
* master  1db21ac second commit

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git checkout hot-fix   # 切換到hot-fix分支,模擬熱維護
Switched to branch 'hot-fix'

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)  #切換后,目錄后面的括號內(nèi)容發(fā)生改變
$ ls -lh
total 1.0K
-rw-r--r-- 1 Lenovo  42 Feb 12 10:45 hello.txt

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ cat hello.txt   # 查看文件內(nèi)容

hello javahello javawebcat hello.txt !

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ echo "\n hello Git! and Java yyds" >> hello.txt  # 追加文件內(nèi)容

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ cat hello.txt  # 再次查看文件內(nèi)容,檢查是添加成功,發(fā)現(xiàn)已經(jīng)添加

hello javahello javawebcat hello.txt !
\n hello Git! and Java yyds

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ git status .
On branch hot-fix
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git restore ..." to discard changes in working directory)
        modified:   hello.txt

no changes added to commit (use "git add" and/or "git commit -a")

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ git add .
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ git status
On branch hot-fix
Changes to be committed:
  (use "git restore --staged ..." to unstage)
        modified:   hello.txt


Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ git commit -m "hot-fix frist commit" . # hot-fix分支,添加,提交到本地倉庫成功
warning: LF will be replaced by CRLF in hello.txt.
The file will have its original line endings in your working directory
[hot-fix f] hot-fix frist commit
 1 file changed, 1 insertion(+)

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ git checkout master  # 切換回 master分支
Switched to branch 'master'

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ cat hello.txt   # 查看 master 分支下的文件內(nèi)容(查看在別的分支下修改文件是否會受到影響)
 #發(fā)現(xiàn)和切換到 hot-fix分支之前的文件內(nèi)容一樣,說明每個分支修改都是獨立的
hello javahello javawebcat hello.txt !

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git reflog  # 下面都是查看歷史版本和日志
1db21ac (HEAD -> master, checkout) HEAD@{0}: checkout: moving from hot-fix to master
f (hot-fix) HEAD@{1}: commit: hot-fix frist commit
1db21ac (HEAD -> master, checkout) HEAD@{2}: checkout: moving from master to hot-fix
1db21ac (HEAD -> master, checkout) HEAD@{3}: reset: moving to 1db21ac
63c7412 HEAD@{4}: reset: moving to 63c7412
1db21ac (HEAD -> master, checkout) HEAD@{5}: commit: second commit
63c7412 HEAD@{6}: commit (initial): frist commit

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git log
commit 1db21ac75f97fdd8bc9dfed2e57eb430c3153b5b (HEAD -> master, checkout)
Author: lqy <@qq.com>
Date:   Sat Feb 12 00:00:04 2022 +0800

    second commit

commit 63c7412ca2d0cc5a4a6a4cd1770e1e75a7
Author: lqy <@qq.com>
Date:   Fri Feb 11 23:20:39 2022 +0800

    frist commit

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git checkout hot-fix  # 再次切換回 hot-fix分支
Switched to branch 'hot-fix'

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ cat hello.txt  # 查看文件還是 之前自己(hot-fix分支)修改提交后的樣子

hello javahello javawebcat hello.txt !
\n hello Git! and Java yyds

分支合并(無沖突)

接上面的例子,將hot-fix修改的內(nèi)容合并到master分支上,并且兩者是沒有修改到重復(fù)的地方(也就是無沖突)

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ git checkout master  # 切換回master分支,因為我們要將 hot-fix 合并到當前的分支(也就是master)下
Switched to branch 'master'

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git merge hot-fix  # 合并
Updating 1db21ac..f
Fast-forward
 hello.txt | 1 +  #共一行受到影響,添加了內(nèi)容(之前hot-fix分支添加了\n hello Git! and Java yyds)
 1 file changed, 1 insertion(+)

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ cat hello.txt # 查看文件,注意:此時在master分支下,查看的是master的文件,發(fā)現(xiàn)已經(jīng)合并了

hello javahello javawebcat hello.txt !
\n hello Git! and Java yyds

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$

合并沖突

出現(xiàn)的原因: 多個分支同時修改了同一個文件的同一個位置,這時git不會自動處理(僅僅把沖突標記),需要人為修改

下面例子演示了hot-fex分支和master同時在hello.txt最后一行添加數(shù)據(jù)合并的情況

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ cat hello.txt  # 查看原來的文件,請注意最后一行

hello javahello javawebcat hello.txt !
\n hello Git! and Java yyds

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ cat hello.txt  #在最后一行添加內(nèi)容,修改過程已省略,需要注意的是修改后需要commit

hello javahello javawebcat hello.txt !
\n hello Git! and Java yyds
hot-fix test
Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ git add .

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ git commit -m "2" .  # 需要提交,不提交合并的還是之前的版本
[hot-fix 2d3540a] 2
 1 file changed, 1 insertion(+)

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ git checkout master  # 切換回 master 分支,除了合并,其他操作與 hot-fix分支一致,文件修改內(nèi)容不一樣罷了
Switched to branch 'master'

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ cat hello.txt

hello javahello javawebcat hello.txt !
\n hello Git! and Java yyds

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ cat hello.txt

hello javahello javawebcat hello.txt !
\n hello Git! and Java yyds
master test
Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git add .

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git commit -m "2" .
[master 73cb316] 2
 1 file changed, 1 insertion(+)

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git merge hot-fix  # 進行合并
Auto-merging hello.txt
CONFLICT (content): Merge conflict in hello.txt #提示我們發(fā)現(xiàn)了(內(nèi)容)沖突,發(fā)生在hello.txt文件
Automatic merge failed; fix conflicts and then commit the result.
# 自動合并失敗,讓我們修復(fù)沖突然后進行提交, 注意,之后的提交命令接文件名

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master|MERGING)
$ git status  # 查看狀態(tài)
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add ..." to mark resolution)
        both modified:   hello.txt   # 提示都修改

no changes added to commit (use "git add" and/or "git commit -a")

然后我們打開文件觀看發(fā)現(xiàn)

注意!!!我們修改后的提交命令也不能帶文件名了,因為如果攜帶文件名他就不知道該提交哪個

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master|MERGING)
$ git add hello.txt

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master|MERGING)
$ git commit -m "merge test" hello.txt
fatal: cannot do a partial commit during a merge. # 提交失敗,致命(錯誤),合并過程中不能部分提交

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master|MERGING)
$ git commit -m "merge test"   # 提交成功,又生成了一個新的版本號
[master d74e6d6] merge test


不過,合并只會改變被合并的分支,不會改變拿來合并的分支,如下所示,切換到hot-fix分支文件內(nèi)容依然沒變

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ cat hello.txt

hello javahello javawebcat hello.txt !
\n hello Git! and Java yyds
master test

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$ cat hello.txt

hello javahello javawebcat hello.txt !
\n hello Git! and Java yyds
hot-fix test
Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (hot-fix)
$

創(chuàng)建別名

遠程庫鏈接太長,為了方便管理,我們通常會給遠程庫起一個別名替代遠程庫鏈接

如下演示:我們在碼云創(chuàng)建一個倉庫,并且起一個別名,在上面的本地倉庫進行


Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git remote -v  # 查看別名,發(fā)現(xiàn)沒有

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git remote add testGit https://gitee.com/LQY679/test-git.git   #從gitee獲得鏈接,并且起一個別名testGit

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git remote -v  # 發(fā)現(xiàn)有兩個,因為需要拉去和推送,實際上是同一個倉庫
testGit https://gitee.com/LQY679/test-git.git (fetch)
testGit https://gitee.com/LQY679/test-git.git (push)

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$

推送和拉取遠程庫

請注意:無論是push 遠程庫還是pull 遠程庫時,都需要指定分支,

并且在push可能因為遠程庫被修改過了(如遠程庫比本地庫多了些本地庫沒有的文件),會導(dǎo)致push失敗,所以在push失敗時可以先嘗試pull在push

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git push testGit master  #將本地倉庫推送至遠程庫的master分支,出現(xiàn)下面信息代表成功
Enumerating objects: 37, done.
Counting objects: 100% (37/37), done.
Delta compression using up to 12 threads
Compressing objects: 100% (24/24), done.
Writing objects: 100% (37/37), 3.10 KiB | 528.00 KiB/s, done.
Total 37 (delta 7), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.2]
To https://gitee.com/LQY679/test-git.git
 * [new branch]      master -> master

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ git pull testGit master  # 將遠程庫拉取到本地庫的master,出現(xiàn)下面信息代表成功
From https://gitee.com/LQY679/test-git
 * branch            master     -> FETCH_HEAD
Updating d74e6d6..d9ec34f
Fast-forward
 hello.txt | 1 +
 1 file changed, 1 insertion(+)

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$ cat hello.txt  # 查看文件發(fā)現(xiàn)發(fā)現(xiàn)了在gitee上的修改

hello javahello javawebcat hello.txt !
\n hello Git! and Java yyds
master test
 在gitee上做的修改

Lenovo@DESKTOP-2U25RBA MINGW64 /e/Code/gitCode/testGit (master)
$

SSH公鑰免密登陸

gitee和gitHub都支持使用ssh公鑰免密登陸,我們在自己電腦綁定公鑰后以后進行Git操作就不需要頻繁輸入密碼了

生成公鑰命令

ssh-keygen -t rsa -C 自己的郵箱   # 使用真實郵箱,rsa是一種加密算法, 注意 -C選項的C 是大小

生成并且查看公鑰

生成的公鑰在用戶目錄中,用戶目錄即 C:\Users\自己電腦的登陸名,由于我還未生生成,故是沒有的,

在此目錄下右擊鼠標打開Git命令行工具,隨后輸入命令

隨后進入.ssh目錄,會有兩個文件 id_rsa ,這個文件內(nèi)容是私鑰, id_rsa.pub 文件的內(nèi)容是公鑰,

復(fù)制公鑰在平臺(Gitee或GitHub)里綁定

登陸Gitee或租GitHub,在個人信息找到相關(guān)設(shè)置將id_rsa.pub 文件的內(nèi)容復(fù)制后.粘貼到對應(yīng)平臺所需要填寫的公鑰即可


當前文章:Git簡單介紹以及使用入門
文章URL:http://weahome.cn/article/dschgii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部