使用github 托管代碼簡單使用教程--本地文件管理
- 1.基本概念
- 2.本地文件管理
- 2.1 git add
- 2.2 git status
- 2.3 git commit
- 2.3 git log
- 2.5 git reset --hard 版本回退
- 2.6 git reflog
- 2.7 git diff
- 2.8 git checkout --file 工作區文件恢復
- 2.9 git rm 刪除版本庫里的文件
廖雪峰老師博文學習筆記:https://www.liaoxuefeng.com/wiki/896043488029600/897884457270432
代碼修改/新建進入遠端服務器的流程:working directory->staging area->repository->remote repository
git 數據流:
1.基本概念
工作區(Workspace) | 本地一個用于當前文件操作的工作區 |
暫存區(Stage/Index) | 存放在“.git/目錄下”的index文件(.git/index)中 |
版本庫 | 工作區隱藏目錄.git/,存放Git的版本庫。 |
遠程版本庫 | 托管在服務器上的倉庫,可與本地代碼庫建立連接 |
2.本地文件管理
git 比其他分布式管理系統優秀的原因是它管理的是修改。
2.1 git add
將文件加入緩存區(什么時候加的技巧沒有掌握)
單個文件,多個文件,名字匹配文件,所有修改/未修改/刪除的文件
git add A.txt
git add A.txt B.txt
git add A*
git add all # 可以提交未跟蹤、修改和刪除文件
git add . # 可以提交未跟蹤和修改文件,但是不處理刪除文件
兩者都可以將工作區中所有未跟蹤或者修改的文件添加到暫存區。(1).git add all無論在哪個目錄執行都會提交相應文件。(2).git add .只能夠提交當前目錄或者它后代目錄下相應文件。
參考博文:https://www.softwhy.com/article-8489-1.html
兩次add 同一個文件后再commit,提交的是最新的修改文件。
2.2 git status
git status
查看當前的工作區和緩存區的狀態,有沒有文件被修改,新增,需要提交之類的。
2.3 git commit
Commit–提交,每一個提交可以被視為一個版本。每一次Commit時,作者、時間、注釋及其之間的版本都會被記錄下來,commit完暫存區被清空。
每當文件修改到一定程度的時候,就可以“保存一個快照”,這個快照在Git中被稱為commit。一旦把文件改亂了,或者誤刪了文件,還可以從最近的一個commit恢復,然后繼續工作,而不是把幾個月的工作成果全部丟失。(廖老師)
每提交一個新版本,實際上Git就會把它們自動串成一條時間線。
git commit -m “提交注釋:first commit/update xxx”
如果某次commit 之后,發現有新的改動需要提交到這個commit中,可以使用–amend
git add updatefile.py # 新修改的文件
git commit --amend # 將新修改的文件提交的最近的一個commit
隨后會跳出提示修改提交信息的窗口,如果不修改提交備注信息,則wq退出即可提交成功。
amend 常用于修改已經提交的版本中的代碼,如果是多步提交之前,可使用reset 將HEAD 移動回對應的版本,然后再提交修改。
注意:amend之后會產生新的版本號git log 看不出來,git reflog才能看的出來
2.3 git log
查看版本信息 ,命令輸出信息中的commit 字段后跟著一個版本號。
git log
在Git中,用HEAD表示當前版本:
HEAD^ | 上一個版本 |
HEAD^^ | 上上個版本 |
HEAD~n | 上n個版本 |
不顯示詳細的提交信息
git log --pretty=oneline
圖狀顯示
git log --graph --pretty=oneline --abbrev-commit
2.5 git reset --hard 版本回退
版本回退是本地代碼管理的靈魂
git reset --hard 版本號 # 對應的策略
git reset --hard head^
版本號沒必要寫全,前幾位就可以了.
2.6 git reflog
git reset 之后, git log不顯示最新版本信息,使用git reflog查看歷史命令,可以找到對應的版本號.
git reflog
2.7 git diff
對比文件差異
1.工作區Vs緩存區
git diff file_name // 對比工作區與緩存區file_name文件的差異
2.緩存區Vs上一次提交
git diff --cached file_name
3.工作區Vs上一次提交
git diff HEAD file_name
4.兩次提交之間對應文件的差異
git diff 版本號1 版本號2 file_name // 對比兩次提交相應文件的差異。
–號前后是對比對象吧
2.8 git checkout --file 工作區文件恢復
git checkout – readme.txt
讓文件回到最近一次git commit或git add時的狀態。
暫存區里有 未提交的readme.txt ,則將其恢復到工作區
暫存區里無 未提交的readme.txt ,則將版本庫里的readme.txt 恢復到工作區
兩個作用 | |
---|---|
1 | 丟棄工作區里的修改 |
2 | 恢復工作區誤刪的文件誤刪操作 |
git checkout 不帶–,切換分支命令,后續講解
2.9 git rm 刪除版本庫里的文件
將文件從版本庫中刪除
git rm test.txt
git commit -m “remove test.txt”
廖雪峰老師博文學習筆記:https://www.liaoxuefeng.com/wiki/896043488029600/897884457270432