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
系統(tǒng)配置文件在: 安裝路徑\Git\etc\gitconfig
用戶配置文件 C:\Users\當前用戶名.gitconfig
工作區(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ù)以及分支指向,
文件在工作目錄且未被git管理就是屬于未跟蹤,并且是屬于未暫存的,
當文件已經(jīng)被添加到暫存區(qū)后,就屬于暫存狀態(tài)了,但是git管理的文件被修改后,又會變成未暫存狀態(tài)
顧名思義,也就是當暫存區(qū)的文件被修改后,文件會變成已經(jīng)修改狀態(tài),并且屬于未狀態(tài),不過請注意,未跟蹤的文件由于是未被git管理,故未跟蹤的文件即使被修改也還是未跟蹤狀態(tài)
顧名思義,也就是被提交到本地倉庫的文件,此外,請注意本地倉庫在隱藏目錄.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 分支名 # 把指定的分支合并到當前分支下
團隊內(nèi)協(xié)作
? (圖片來自尚硅谷)
跨團隊協(xié)作
? (圖片來自尚硅谷)
git remote -v #查看所有遠程鏈接別名
git remote add 別名 遠程地址url #添加別名
git push 遠程庫別名或url # 將本地框推送至遠程庫
git pull 遠程庫別名或url # 將遠程庫拉取到本地
git remote remove 別名 #刪除別名
以下所有案例都是連續(xù)的操作
有如下案例,在testGit項目中存在一個hello.txt文件,從未追蹤到提交到本地庫生成版本信息如下:
如下代碼賦值終端信息為了方便觀看,接上面的案例
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)
$
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)建一個倉庫,并且起一個別名,在上面的本地倉庫進行
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)
$
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)平臺所需要填寫的公鑰即可