初始化一個Git倉庫,使用git init命令。
-
添加文件到Git倉庫,分兩步:
- 第一步,使用命令git add <file>,注意,可反復多次使用,添加多個文件;
- 第二步,使用命令git commit,完成。
要隨時掌握工作區(qū)的狀態(tài),使用git status命令。
如果git status告訴你有文件被修改過,用git diff可以查看修改內容。
HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id; 回退上一個版本git reset --hard HEAD^
穿梭前,用git log可以查看提交歷史,以便確定要回退到哪個版本。
要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本。
-
撤銷修改,分三個場景
- 場景1:當你改亂了工作區(qū)某個文件的內容,想直接丟棄工作區(qū)的修改時,用命令git checkout -- file。
- 場景2:當你不但改亂了工作區(qū)某個文件的內容,還添加到了暫存區(qū)時,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操作。
- 場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,使用命令git reset --hard commit_id 回退版本,不過前提是沒有推送到遠程庫。
-
關于刪除
- 本地刪除的文件,已經添加到暫存區(qū)了。使用命令git rm刪除暫存區(qū)文件,并執(zhí)行git commit命令
- 本地刪錯了,想恢復回來跟暫存區(qū)文件一樣。執(zhí)行命令git checkout -- file
-
建立遠程倉庫
- 要關聯(lián)一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git
- 關聯(lián)后,使用命令git push -u origin master第一次推送master分支的所有內容;
- 之后每次提交使用命令git push
-
分支操作
- 查看分支:git branch
- 創(chuàng)建分支:git branch <name>
- 切換分支:git checkout <name>
- 創(chuàng)建+切換分支:git checkout -b <name>
- 合并某分支到當前分支:git merge <name>
- 刪除分支:git branch -d <name>
- 丟棄一個沒有被合并過的分支,可以通過git branch -D <name>強行刪除。
- 查看遠程庫信息,使用git remote -v;
- 從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠程的新提交;
- 在本地創(chuàng)建和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致;
- 建立本地分支和遠程分支的關聯(lián),使用git branch --set-upstream branch-name origin/branch-name;
-
打標簽
- 命令git tag <name> 用于新建一個標簽,默認為HEAD,也可以指定一個commit id;
- 命令git tag可以查看所有標簽。
- 命令git push origin <tagname> 可以推送一個本地標簽;
- 命令git push origin --tags可以推送全部未推送過的本地標簽;
- 命令git tag -d <tagname> 可以刪除一個本地標簽;
- 命令git push origin :refs/tags/<tagname> 可以刪除一個遠程標簽。
參考文檔:
[1]. 廖雪峰Git教程