常用Git命令整理

    xiaoxiao2021-12-12  16

    软件工程各种项目中离不开对Git的使用,尤其是小组完成任务时对于Git的操作更加频繁。开始接触Git以来对于Git的知识一直处于零散的阶段,每一次想要运用某个功能都要花一点时间上网查,于是就下定决心将自己常用常查的命令整理起来,未来只需要花一分钟就能找到想要的东西。

    一、新建代码库

     

    #在当前目录新建一个Git仓库

    mkdir lab1 //创建名为lab1的本地仓库

    cd lab1   //进入该仓库

    git init   //初始化

     

    #新建一个目录,将其初始化为Git代码库

    $ git initproject-name

     

    #下载一个项目和它的整个代码历史

    $ git clonegit@github.com:mzx0522/Lab1

     

    二、增加/删除文件

     

    #添加指定文件到暂存区

    $ git add file1 file2 ...

     

    #添加指定目录到暂存区,包括子目录

    $ git add [dir]

     

    #添加当前目录的所有文件到暂存区

    $ git add .

     

    #删除工作区文件,并且将这次删除放入暂存区

    $ git rm file1 file2 ...

     

    #改名文件,并且将这个改名放入暂存区

    $ git mvfile-original  file-renamed

     

    三、代码提交

     

    #提交暂存区到仓库区,引号中内容是为本次提交注释(建议使用commit时运用这种带有注释的方式,尽量避免直接使用git commit命令)。也就是说两次commit命令之间所有add都会被提交

    $ git commit –m“explain what has changed”

     

    #提交暂存区的指定文件到仓库区

    $ git commit file1 file2 ... -m “message”

     

    #提交工作区自上次commit之后的变化,直接到仓库区

    $ git commit -a

     

    #提交时显示所有diff信息

    $ git commit -v

     

    四、分支

     

    #列出所有本地分支

    $ git branch

     

    #列出所有远程分支

    $ git branch -r

     

    #列出所有本地分支和远程分支

    $ git branch -a

     

    #新建一个分支,但依然停留在当前分支

    $ git branchbranch-name

     

    #新建一个分支,并切换到该分支

     

    #切换到指定分支,并更新工作区

    $ git checkout branch-name

     

    #切换到上一个分支

    $ git checkout -

     

    #合并指定分支到当前分支

    $ git mergebranch

     

    #删除分支

    $ git branch -dbranch-name

     

    #删除远程分支

    $ git push origin --deletebranch-name

    $ git branch -drremote/branch

    七、查看信息

     

    #显示有变更的文件

    $ git status

     

    #显示当前分支的版本历史

    $ git log

     

    #显示commit历史,以及每次commit发生变更的文件

    $ git log --stat

     

    #搜索提交历史,根据关键词

    $ git log -Skeyword

     

    #显示某个commit之后的所有变动,每个commit占据一行

    $ git logtag HEAD --pretty=format:%s

     

    #显示某个文件的版本历史,包括文件改名

    $ git log --followfile

    $ git whatchangedfile

     

    #显示指定文件相关的每一次diff

    $ git log -pfile

     

    #显示过去5次提交

    $ git log -5 --pretty --oneline

     

    #显示所有提交过的用户,按提交次数排序

    $ git shortlog -sn

     

    #显示暂存区和工作区的差异

    $ git diff

     

    #显示暂存区和上一个commit的差异

    $ git diff --cached file

     

    #显示工作区与当前分支最新commit之间的差异

    $ git diff HEAD

     

    #显示两次提交之间的差异

    $ git difffirst-branchsecond-branch

     

    #显示今天写了多少行代码

    $ git diff --shortstat "@{0 day ago}"

     

    八、远程同步

     

    #下载远程仓库的所有变动

    $ git fetchremote

     

    #显示所有远程仓库

    $ git remote -v

     

    #显示某个远程仓库的信息

    $ git remote show remote

     

    #增加一个新的远程仓库,并命名

    $ git remote addnamegit@github.com:mzx0522/lab1

     

    #取回远程仓库的变化,并与本地分支合并

    $ git pull [remote] [branch]

     

    #上传本地指定分支到远程仓库

    $ git push remote branch

     

    #强行推送当前分支到远程仓库,即使有冲突

    $ git push remote--force

     

    #推送所有分支到远程仓库

    $ git push remote--all

    九、撤销

     

    #恢复暂存区的指定文件到工作区

    $ git checkout file

     

    #恢复暂存区的所有文件到工作区

    $ git checkout .

     

    #重置暂存区的指定文件,与上一次commit保持一致,但工作区不变

    $ git reset  file

     

    #重置暂存区与工作区,与上一次commit保持一致

    $ git reset --hard

     

    #重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变

    $ git reset commit

     

    #重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致

    $ git reset --hard commit

     

    #重置当前HEAD为指定commit,但保持暂存区和工作区不变

    $ git reset --keep commit

    转载请注明原文地址: https://ju.6miu.com/read-900243.html

    最新回复(0)