git命令基本用法整理

最近使用git命令提交代碼的時候發現很多命令都忘記了,於是重新學習了一下git命令。順便整理了一下,加強記憶,也方便以後隨時查看。

以下命令都是平常工作中使用頻率較高的命令,也是git的一些基本用法,其中[]內的參數表示可以省略,<>內的參數只是示例,具體名稱視自己的項目而定,實際命令中不帶<>,<origin>表示遠程主機名,<master><next>等表示分支名。

1.git配置
    獲取本機ssh key:

        ssh-keygen -t -C "<[email protected]>"


    配置全局name和email:

        git config --global user.name "<yourName>"
        git config --global user.email "<[email protected]>"

2.clone項目到本地
    git clone <http://yourGitAddress.git>

3.查看工作區狀態  git status

4.git add
    將某個文件或文件夾添加到暫存區:
        git add <file_name.txt>/<path>

    將當前目錄所有修改添加到暫存區(不包括忽略文件):
        git add .

    將<path>內的所有已跟蹤文件的修改添加到暫存區(省略path表示當前目錄):
        git add -u [<path>]

    將<path>內的所有已跟蹤文件的修改和未跟蹤文件添加到暫存區(省略path表示當前目錄):
        git add -A [<path>]

    查看<path>中已修改但未提交的文件,並通過子命令進行控制(省略path表示當前目錄):
        git add -i [<path>]

5.git commit
    提交所有改動並編寫日誌:
        git commit -m "<改動日誌說明>"

6.git pull
    下拉指定主機的指定分支,並與本地的指定分支合併:
        git pull <origin> <遠程master>:<本地master>

    下拉指定主機的指定分支,並與本地的當前分支合併:
        git pull <origin> <master>

7.git push
    推送本地指定分支到指定遠程主機的指定分支上:
        git push <origin> <本地master>:<遠程master>

    推送本地指定分支到遠程同名分支上,如果遠程沒有同名分支,則會新建同名分支:
        git push <origin> <本地master>

    推送空的分支到遠程指定分支,相當於刪除遠程分支:
        git push <origin> :<遠程master>

    推送當前分支到指定主機的指定分支:
        git push <origin> HEAD:<遠程master>

    推送當前分支到指定主機的同名分支:
        git push <origin> HEAD

    推送本地分支到遠程同名分支上,並建立追蹤關係(建立追蹤關係後可直接使用git push推送):
        git push -u <origin> <master>

    推送本地所有分支到指定主機上:
        git push --all <origin>

8.git branch
    查看分支列表:
        git branch [--list]

    查看本地和遠程所有分支:
        git branch -a

    新建分支:
        git branch <next>

    刪除遠程分支:
        git push <origin> --delete <next>

    刪除分支(當前分支不能在被刪除的分支上):
        git branch -D <next>

9.git merge
    合併某個分支到當前分支下,並自動進行新的提交:
        git merge <next>

    合併某個分支到當前分支下,不進行新的提交:
        git merge --no-commit <next>

    合併master分支和next分支到當前分支頂部:
        git merge <master> <next>

10.git checkout
    切換到<master>分支的head版本:
        git checkout <master>

    取出當前分支的tag_name版本:
        git checkout <tag_name>

    放棄指定分支對file_name的修改:
        git checkout <master> <file_name.txt>

    在當前分支上創建新分支並將工作區設置爲該分支上:
        git checkout -b <next>

11.git reset
    回退文件,將文件從暫存區回退到工作區:
        git reset [HEAD] <file_name.txt>

    向前回退多個版本:
        git reset HEAD~n

    回退到指定某個版本:
        git reset <commit_id>

    將版本庫軟回退n個版本,所謂軟回退表示將本地版本庫的頭指針全部重置到指定版本,且將這次提交之後的所有變更都移動到暫存區:
        git reset --soft HEAD~n

    將版本庫回退n個版本,將本地版本庫的頭指針全部重置到指定版本,且會重置暫存區,即這次提交之後的所有變更都移動到未暫存階段:
        git reset [--mixed] HEAD~n

    將版本庫回退n個版本,但是不僅僅是將本地版本庫的頭指針全部重置到指定版本,也會重置暫存區,並且會將工作區代碼也回退到這個版本:
        git reset --hard HEAD~n

12.git rm
    刪除git倉庫管理系統以及本地中的某個文件:
        git rm <file_name.txt>

    刪除git倉庫管理系統以及本地中的某個文件夾:
        git rm -r <path>

    刪除git倉庫管理系統中的文件,但是保留本地文件:
        git rm --cached <file_name.txt>

13.git mv
    移動某個文件到指定文件夾下:
        git mv <file> <path>

    重命名某個文件:
        git mv <file_name> <new_file_name>

14.git rebase
    把當前分支衍合到指定分支上:
        git rebase <master>

    如果有衝突需要先解決衝突,解決完衝突之後執行:
        git rebase --continue

    放棄本次衍合操作:
        git rebase --abort

    直接使用master分支取代此分支

        git rebase --skip


資料都是自己在網上面收集整理,再加上了自己的一些理解,如果有錯誤,還望能提出,我好及時改正。如果還有什麼問題也可以與我討論,大家共同學習,一起進步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章