本地倉庫
Git 六行配置
git config --global user.name 你的英文名
git config --global user.email 你的郵箱
git config --global push.default simple
git config --global core.quotepath false
git config --global core.editor "code --wait"
git config --global core.autocrlf input
注意:
- 英文名和郵箱的設置跟 GitHub 沒有關系。
可以跟 GitHub 的用戶名和郵箱保持一致,
也可以不一致。建議保持一致。 - 我們需要保證 code 是可以直接在命令行執(zhí)行的。如果不能執(zhí)行,就需要安裝 VSCode 并配置 PATH。我的 PATH 里添加的內(nèi)容是E:\Vscode\Microsoft VS Code\bin

git只是一個命令,和ls,cp同類。
整個命令框叫Bash 。
git解決的問題:
- 版本控制,隨時退回到某個版本。
-
git init 命令創(chuàng)建.git目錄,用于快照。
-
git add 路徑,路徑可以是相對路徑,絕對路徑,. 和 * 。選擇性的添加目錄中的文件到git倉庫。
-
.gitignore 用來描述哪些變動是不需要提交的,常見的有node_modules; .DS_Store; .idea; .vscode 。創(chuàng)建.gitignore文件,在里邊寫入不行提交的文件的文件名。
- git commit -m "版本號" (注意是英文引號)
修改代碼后
git commit -v 后會彈出vscode
關閉git后會顯示。
推薦git commit -v(在編輯器里加commit,方便寫的更詳細)而不是git commit -m+字符串(如果有空格,字符串要加引號)。
后續(xù)提交的時候為了省事,可以先git add .提交當前目錄,再git commit -v 。
重頭戲來啦!?。。。。。。。。。。。。。?/strong>
git reset --hard xxxxxx恢復到提交過的任意一個版本。(前六位,其實前四位就可以了,只要這個號碼不唯一)在各個版本之間跳轉(zhuǎn)。一定要在執(zhí)行這個操作前將所有代碼commit,不然沒有commit的代碼就會被刪掉git log(給別人看的) 查看當前版本和之前提交的版本,git reflog(私有的日記) 查看完整的提交和版本變化過程。
各個版本的壓縮文件存在.git的object里邊。
只有commit 會影響.git倉庫。
add 和 commit 的關系
add就像找女朋友,可以撤銷。而commit就是結(jié)婚。
總結(jié):
git init 創(chuàng)建一個倉庫
git add 路徑 標記需要提交的文件
.gitignore描述哪些文件是不需要提交的
用來創(chuàng)建拷貝
git commit -m 字符串
git commit -v(推薦)
git reset --hard xxxxxx用來切換版本
git reflog用來查看所有歷史
git不會重復拷貝,創(chuàng)建新版本時只會拷貝之前沒拷貝的修改過的,減輕了工作量。
上邊的使用場景是想要回退到之前的版本,現(xiàn)在我們考慮第二個使用場景,兩條線同時開發(fā)。

git branch x 創(chuàng)建分支
在哪個分支提交代碼就出現(xiàn)在哪個分支。
git checkout 分支名 切換分支

場景三
兩個版本合并,一個在上一個在下。


用鼠標自行刪減。

或者使用vim
小于號<<<<<<<封頂
大于號>>>>>>>封底




解決沖突的辦法
首先merge時提示有沖突

-
git status(或者git status -sb(summary branch),更容易看懂)查看哪些文件沖突
UU表示兩邊都改了
-
依次打開每個沖突文件,搜索"===="在上下兩部分中選擇要保留的代碼
,刪除無用的代碼和====;<<<<<<<;>>>>>>>;
- git add 對應文件
- 再次git status -sb 解決下一個文件的沖突
- 直到?jīng)]有沖突后,運行git commit(不需要參數(shù))
補充:git branch -d x刪除分支

回顧
刪除也是要add的
GUI操作:當在vscode新建一個文件,可以直接在vscode里提交。

還有一種方法提交修改的文件
ctrl + shift + p調(diào)出命令行輸入git add



如果是提交新創(chuàng)的文件
記得勾選

遠程倉庫
配置





總結(jié):這個過程就像是私匙放在個人電腦,公匙放在Github賬號上,上傳代碼用私鑰加密,Github用公鑰解密,只有配對時才能成功。

上傳和下載
上傳
創(chuàng)建一個新倉庫后,記得這里要設置成SSH,不建議用HTTPS(每次都要輸入一次密碼,很麻煩)!?。。。?!




如何上傳其他分支?
- 法一:git push origin x:x
- 法二:git checkout x3
git push -u origin x
下載
git clone + SSH/HTTPS地址
下載自己的代碼可以用SSH,別人的代碼要用HTTPS!
下載自己的代碼時,如果是不同機器,則要上傳新的ssh key(公鑰共享,私鑰一機一key)

注意:下載下來的是一個完整的倉庫,同樣可以git checkout+分支名 切換分支。(可以只下載某個分支,但是命令很難記,不推薦)
然后,基于下載的倉庫,可以繼續(xù)編輯。[git add / git commit / (git pull) / git push]
注意git pull不是必須的,只有在遠程倉庫的代碼變動后(你的隊友改了代碼),才需要git pull
遠程倉庫只是本地倉庫的備份,所有倉庫都要先commit到本地倉庫,然后push到遠程。
幾種git clone形式
- git clone git@?/xxx.git
會在當前目錄下創(chuàng)建一個xxx目錄
xxx/.git是本地倉庫
一般直接接一句cd xxx - git clone git@?/xxx.git yyy
會在本地新建名為yyy的目錄,該命令通常用于修改下載的目錄名,記得cd yyy - git clone git@?/xxx.git .
注意最后有個 . ,該命令不會新建目錄,代碼和.git文件灌溉到當前目錄,當前目錄一開始最好是個空目錄。
git clone 下載速度慢如何解決?(親測有效,很????)
https://github.com/sun-shadow/Surf_the_Internet/blob/master/命令行篇.md
下邊的內(nèi)容不常用
一個本地倉庫同時上傳到兩個遠程倉庫
只需要兩句話
- git remote add repo2 git@xxxxxx
- git push -u repo2 main
高級操作
使用bash alias簡化命令(gst,ga,gc,gl,gp)



大功告成~
同理可以加入其他命令,但是記住每次添加完了要source一下。
美化git log

然后code ~/.bashrc,添加這句話到最后一行。
alias glog="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit -- | less"
接著source一下,重啟終端glog即可

美化歷史命令
git rebase -i xxxxxx
xxxxxx為要美化的前一個號。


















