Git基礎(chǔ)命令與操作

Git是一個分布式的版本控制系統(tǒng),它在版本控制、分支管理方面有突出的表現(xiàn)。

參考教程 Git教程

git.png

1.本地倉庫

1.1初始化

cd到需要進(jìn)行版本控制的目錄下,對該目錄的項(xiàng)目創(chuàng)建本地git版本庫

git init
1.2工作區(qū)-->暫存區(qū)

工作區(qū)就是當(dāng)前目錄,目錄下的文件更改需要添加到暫存區(qū)。
暫存區(qū)是版本庫中用于接受git add文件的區(qū)域,可以理解為臨時保存將要正式提交的文件。

git add <file>
1.3暫存區(qū)-->本地倉庫

暫存區(qū)中的文件經(jīng)過commit之后,才會最終記錄在版本庫的記錄中。

git commit -m <comment>
1.4查看狀態(tài)
git status
1.5比較工作區(qū)與暫存區(qū)
git diff
1.6比較工作區(qū)與版本庫最新提交
git diff HEAD

2版本管理

2.1查看歷史

git log只能查看該commit之前的歷史

git log

git reflog可以查看所有分支的所有操作(包括commit和reset)

git reflog
2.2回到前x個版本
git reset --hard HEAD~x
2.3回到某個版本
git reset --hard <commit-id>
2.4撤銷工作區(qū)的修改

場景1:文件修改后,未add到暫存區(qū),直接丟棄更改;

git checkout -- <file>

場景2:文件修改后,已a(bǔ)dd到暫存區(qū),先用git rest HEAD <file>回到場景1,再按場景1操作

git reset HEAD <file>

場景3:文件修改后,已a(bǔ)dd到暫存區(qū),并且commit到版本庫

git reset HEAD <file>
2.5刪除文件

在Git中,刪除也是一種操作,需要使用git rm <file>(與git add <file>類似),刪除之后還需要commit

git rm <file>
# 從git倉庫移除文件,但不刪除本地文件
git rm --cached <file>

3.遠(yuǎn)程倉庫

3.1將遠(yuǎn)程倉庫克隆到本地
git clone <remote-address>
3.2關(guān)聯(lián)遠(yuǎn)程git倉庫
git remote add origin <remote-address>
3.3首次向遠(yuǎn)程倉庫推送master
git push -u origin master
3.4從本地推送分支
git push origin <branch>
3.5從遠(yuǎn)程抓取當(dāng)前分支
git pull
3.6在本地創(chuàng)建和遠(yuǎn)程分支對應(yīng)的分支(分支名稱最好一致)
git checkout -b <branch> origin/<branch>
3.7建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)
git branch --set-upstream <branch> origin/<branch>
3.8將本地分支推送到遠(yuǎn)程(遠(yuǎn)程分支不存在)
git push origin <local-branch>:<remote-branch>
3.9將遠(yuǎn)程分支拉取到本地
git checkout -b <local-branch> origin/<remote-branch>
3.10查看遠(yuǎn)程庫信息
git remote -v   

4.分支管理

4.1創(chuàng)建分支
git branch <branch>
4.2切換分支
git checkout <branch>
4.3創(chuàng)建并切換分支
git checkout -b branch_name
4.4列出所有的分支
git branch
4.5合并指定分支到當(dāng)前分支
git merge [--abbrev-commit] [-m "message"] <branch>
4.6刪除分支
git branch -d <branch>
# 刪除遠(yuǎn)程分支并推送到遠(yuǎn)程
git branch -r -d <branch> && git push origin :<branch>
4.7強(qiáng)行刪除未合并的分支
git branch -D branch_name
4.8存儲當(dāng)前工作區(qū)
git stash
4.9查看保存的工作區(qū)
git stash list
4.10恢復(fù)stash但不刪除
git stash apply stash@{0}
4.11刪除stash
git stash drop
4.12恢復(fù)stash同時刪除stash
git stash pop
4.12將當(dāng)前分支rebase到目標(biāo)分支
git rebase <branch>

5.標(biāo)簽管理

5.1在當(dāng)前分支的最新commit上創(chuàng)建標(biāo)簽
git tag <tag-name>
5.2查看所有標(biāo)簽
git tag
5.3在當(dāng)前分支的指定commit_id上創(chuàng)建標(biāo)簽
git tag <tag-name> <commit-id>
5.4在當(dāng)前分支的指定commit_id上創(chuàng)建帶說明的標(biāo)簽
git tag -a <tag-name> -m <comment> <commit-id>
5.5查看標(biāo)簽信息
git show <tag-name>
5.6將標(biāo)簽推送到遠(yuǎn)程
git push origin <tag-name>
5.7推送所有未推送的本地標(biāo)簽到遠(yuǎn)程
git push origin --tags
5.8刪除標(biāo)簽
git tag -d <tag-name>
5.9將本地刪除的標(biāo)簽推送到遠(yuǎn)程(即刪除遠(yuǎn)程標(biāo)簽)
git tag push origin :refs/tags/<tag-name>
5.10切換到指定的標(biāo)簽
git checkout tag

6.其它

6.1檢查文件是否被忽略
git check-ignore -v <file>
6.2配置yy命令的別名為xx
git config --global alias.xx yy
6.3配置git lg為各種git log附加效果的別名
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容