本文為經驗 所談 使用版本為ubuntu20.04
1 ubuntu的git初始化
1.安裝git
sudo apt-get install git
可通過git --version
命令查看,正常輸出git版本號即安裝成功。
2.配置用戶名和郵箱名
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
配置完后可以通過以下命令查看
git config user.name
git config user.email
3.創建ssh公鑰
創建公鑰文件,生成的公鑰文件會保存在本機的~/.ssh目錄下
ssh-keygen -C 'example@example.com' -t rsa
出現的第一個代表儲存位置(你也可以直接按回車 直接省事到底)
4 .拿出公鑰填入GitHub
cd ~/.ssh
cat id_rsa.pub
#默認儲存位置
復制即可
github部分
點擊個人設置,即右上角 然后個人設置 粘貼即可
將剛才保存的id_rsa.pub文件內容復制到Key字段,Title自己起個名字,最好是能代表當前所配置的機器的名字。然后點Add SSH key,會要求輸入當前github賬號的密碼,按要求輸入就行了。
2 git本地操作
2.1添加文件
1 創建倉庫并初始化
倉庫(repository)也叫版本庫,可以看做一個目錄,這個目錄里的所以文件都由Git進行管理,每個文件的修改、刪除,Git都能跟蹤
- 1.打開你的項目文件
- 2 輸入
git init
會輸出
Initialized empty Git repository in /home/ps/JJ_Projects/learnGit/.git/
,表示成功初始化git倉庫。
這時會發現該目錄中多出了一個.git目錄,這就是git來跟蹤管理版本庫的
2.添加文件
以readme做例子
1.readme.md
我們首先創建一個README文件,并寫入一些內容:
touch readme.md
vim readme.md#自己隨便寫點cat readme.md # 查看文件內容
2.執行git add命令,將文件添加的倉庫。
git add README.txt
3 執行git commit命令,將文件提交的倉庫。
git commit -m "Submit a new file." # 雙引號內是本次提交的注釋,原則上可以隨便寫,但是盡量能表達出本次提交的改動。-m -m 參數后面跟著的是提交信息,描述你所做的更改
輸出
master (root-commit) 7e21c1f] Submit a new file.
1 file changed, 1 insertion(+)
create mode 100644 README.tx
2.2 修改文件
1.修改文件內容‘
vim readme.md
2.查看倉庫狀態
git status
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: readme.md
意思很明顯:README.txt文件提勁被修改過了,但是現在還沒有改動需要git submit,因為要先git add。
3 查看文件改動
git diff
4 就像上面一樣添加到本地倉庫
2.4 版本回退
使用git進行版本控制,重要的用途之一就是進行版本回退了,我們來看一下怎樣操作。
1.我們先使用git log
命令來查看一下倉庫的修改日志
2.使用git reset命令,將版本回退
git reset --hard HEAD^ # HEAD表示當前版本,HEAD^代表上一個版本
輸出:
HEAD is now at 7e21c1f Submit a new file.
2.5工作區和暫存區
1.工作區(Working Directory),我們創建的learnGit 目錄就是一個工作區。
- 版本庫,倉庫(Repository),工作區有個隱藏目錄 .git ,這個不算工作區,而是 Git 的版本庫。
3.版本庫里面的 index(stage) 文件叫暫存區,還有Git為我們自動創建的第一個分支 master ,以及指向 master 的一個指針叫做 HEAD。
關系
前面我們提到過,如果我們想把文件添加到Git里面時,需要分兩步:
第一步是用 git add 把文件添加進去,實際上就是把文件修改添加到暫存區。
第二步是用 git commit 提交更改,實際上就是把暫存區的所有內容提交到當前分支。(我們現在只有唯一一個分支 master,所以現在就是往 master 分支上提交
2.6 刪除文件與恢復
- 我們先準備一個待刪除的文件test.txt,并add、commit到倉庫,
touch test.txt
vim test.txt # 添加內容 delete test
git add test.txt
git commit -m "delete test"
# 輸出:
[master 08ffedc] delete test1 file changed, 1 insertion(+)create mode 100644 test.txt
2.工作區中直接刪除test.py
rm test.py
這時有兩種情況:
-
(1) 工作區中誤刪文件,需要恢復
-
(2) 確實要刪除文件,應該把刪除操作提交到倉庫
3.工作區中誤刪文件,需要恢復
這種情況其實與上面的撤銷修改情況1是一樣的,要將工作區的動作撤銷掉,而這在我們的倉庫中還是存在的,所以還是要請出我們的checkout命令就好了。
git checkout -- test.txt
ls
# 輸出:
README.txt test.txt
4.確實要刪除文件,應該把刪除操作提交到倉庫
我們先把剛剛恢復的test.txt再從工作區刪掉。
rm test.txt
既然我們確實要刪掉該文件,就直接再用git rm刪除:
git rm test.py
# 輸出:
rm 'test.txt'
再將刪除操作提交到倉庫:
git commit -m "delete test"
# 輸出:
[master 9182ef7] delete test1 file changed, 1 deletion(-)delete mode 100644 test.txt
這個發現誤刪可以用版本回退
3 github遠程操作
1.添加遠程倉庫
就是ssh下面的網址
git remote add origin <你的網址>
通過一下命令查看遠程倉庫是否被添加
git remote -v
2.提交倉庫
git push -u origin master
因為遠程庫是空的,所以我們在第一次推送 master 分支時,要加上 -u 參數,Git不但會把本地的master 分支內容推送的遠程新的 master 分支,還會把本地的 master 分支和遠程的 master 分支關聯起來,在以后的推送或者拉取時就可以簡化命令。
3.輸入和令牌
提交的時候會輸入令牌和用戶名
假如你是倉庫所有者 你直接用自己的用戶名 和去創建令牌
1.個人設置的開發者設置
2.點擊tokens(classic)
3.生成令牌
選下面哪個 勾選repo 一定要保存(只出現一次) 你提交的時候要驗證