美文网首页
Git常用命令

Git常用命令

作者: 文景大大 | 来源:发表于2019-05-08 17:26 被阅读0次

    一、Git交互流程和基础命令

    Git的命令有很多,我们不一定要全部记住。在理解下图Git各个部件之间的交互流程后,通常只要记住7个就足够我们日常使用了,剩下的命令只需做到大致有个印象,需要的时候再来查阅即可。

    git各个部件之间的交互流程

    在上图中的各个部件为:

    • Remote是指在远程服务器端的代码仓库;
    • Repository是指在本地的代码仓库;
    • Workspace是指当前的工作空间,也许是某一个分支;
    • Index是指暂存区,已经暂存但是还没有提交时的一个代码暂存区域;

    在上图中各个动作为:

    • clone是将远程代码仓库的内容全量拷贝到本地,形成本地的代码仓库;
    • fetch是指将远程代码仓库中领先于本地代码仓库的内容拉取过来,更新本地的代码仓库;
    • checkout是指根据本地代码仓库检出需要的工作空间;
    • pull是指直接将远程代码仓库中领先于工作空间的内容拉取过来,更新工作空间的内容;
    • add是将已经修改的内容加入暂存区域,等待提交;
    • commit是将所有暂存的内容提交到本地的代码仓库上;
    • push是将本地代码仓库上领先的内容推送到远程代码仓库;

    二、Git常用命令

    Git提供了很多强大而又有意思的命令,下面我们挑选一些相对常用的予以说明。

    2.1 代码库相关

    • 将某个文件夹设置为本地代码库:git init
    • 新建某个文件夹同时将其设置为本地代码库:git init filename
    • 根据url拉取远程的一个代码库到本地:git clone http://xxxx

    通过init命令初始化的本地仓库并未关联到远程仓库,需要通过git remote add命令来增加关联到某个远程仓库,详细内容可以参考下面章节列举的远程操作部分。

    2.2 配制相关

    • 显示当前的git配置信息:git config --list
    • 修改当前git配置信息:git config -e [--global],加上--global表示修改全局的配置
    • 设置用户信息:git config [--global] user.name "jack"git config [--global] user.email "xxx@yy.com"

    2.3 文件相关

    • 将文件或者目录加入到暂存区:git add [filename1] [filename2]git add .
    • 将文件从本地仓库区删除,同时也从工作区删除:git rm [filename1] [filename2]
    • 将文件从本地暂存区删除,同时也从工作区删除:git rm -f [filename1] [filename2]
    • 取消追踪文件,将其从仓库区和暂存区删除,但保留在工作区:git rm --cached [filename]
    • 将暂存区的文件改名字:git mv [originfilename] [renamedfilename]

    2.4 提交操作

    • 将暂存区的内容提交到本地仓库:git commit -m "comment"git commit [filename1] [filename2] -m "comment"
    • 将工作区自上次commit之后的的内容直接提交到仓库区:git commit -a
    • 提交时显示多有diff信息:git commit -v
    • 使用本次提交代替上次提交:git commit --amend -m "comment"

    2.5 分支操作

    • 列出本地、远程、所有分支:git branchgit branch -rgit branch -a
    • 新建一个分支并停留在当前分支:git branch [branch-name]
    • 新建一个分支并切换到新建的分支上:git checkout -b [branch-name]
    • 新建一个分支并指向某个commit:git branch [branch-name] [commit]
    • 新建一个分支并与指定的远程分支建立追踪关系:git branch --track [branchname] [remote-branch]
    • 切换到指定的分支并更新工作区:git checkout [branch-name]
    • 切换到上一个分支:git checkout -
    • 合并指定分支上的内容到当前分支上:git merge [branch-name]
    • 选择一个commit合并到当前分支上:git cherry-pick [commit]
    • 删除本地指定分支:git branch -d [branch-name]
    • 删除远程分支:git push origin --delete [branch-name]

    2.6 标签操作

    • 查看所有标签:git tag
    • 在当前commit新建一个标签:git tag [tagname]
    • 在指定的commit新建一个标签:git tag [tagname] [commit]
    • 删除本地tag:git tag -d [tagname]
    • 删除远程tag:git push origin :refs/tags/[tagname]
    • 查看指定tag的信息:git show [tagname]
    • 提交本地的某个tag:git push [remote] [tagname]
    • 提交本地所有的tag:git push [remote] --tags
    • 新建一个分支并指向某个tag:git checkout -b [branchname] [tagname]

    2.7 信息查看

    • 查看变更情况:git status
    • 查看当前分支的版本历史[及变动的文件]:git log [--stat]
    • 显示过去5次提交:git log -5 --pretty --oneline
    • 显示当前分支所有提交过的用户,按照提交次数排序:git shortlog -sn
    • 显示指定文件由谁在什么时间修改过:git blame [filename]
    • 显示暂存区和工作区的差异:git diff
    • 今天写了多少行代码:git diff --shortstat "@{0 day ago}"
    • 显示当前分支的最近几次提交:git reflog

    2.8 远程操作

    • 拉取[指定]远程仓库所有分支的变动到本地仓库:git fetch [remote]
    • 显示[所有]远程仓库:git remote [-v]
    • 显示某个远程仓库的信息:git remote show [remote]
    • 新增一个远程仓库:git remote add [shortname] [url]
    • 删除一个远程仓库:git remote rm [shortname]
    • 重命名一个远程仓库:git remote rename [originname] [newname]
    • 拉取远程仓库该分支的所有变动并合并到当前分支:git pull
    • 推送当前分支的内容到远程仓库的该分支[强行推送忽略冲突]:git push --force
    • 推送所有分支的修改内容到远程:git push --all

    2.9 撤销操作

    • 恢复暂存区的某个文件到工作区并覆盖工作的该文件:git checkout [filename]
    • 恢复暂存区的所有文件到工作区并覆盖工作区:git checkout .
    • 重置暂存区的某个文件到上次commit的状态,但工作区不变:git reset [filename]
    • 重置暂存区和工作区到上次commit的状态:git reset --hard
    • 恢复某个commit的指定文件到暂存区和工作区:git checkout [commit] [filename]
    • 回退到某个提交版本:git reset --hard 版本号

    相关文章

      网友评论

          本文标题:Git常用命令

          本文链接:https://www.haomeiwen.com/subject/tfyvoqtx.html