GIT 常用指令总结

闲来无事想总结一下git 操作指令,很多时候总结才有提高,不总结,老是容易记混。下面按照一般使用的顺序总结。

1.初始配置

需要配置用户名与邮箱。

git config --global user.name "xxx"
git config --global user.email "xxx@163.com"

初始化本地和拉取远程代码库

git init
git clone <url>

本地代码要连接到远程的github仓库,这样两者就绑定了。

git remote add origin <url>

2.基本提交流程

如果增删、修改了目录下的文件,需要先把工作区的提交到暂存区,暂存区再提交到本地仓库。没有track 的文件也用add

git add
git commit

git commit -a   //相当于git add + git commit  直接把工作区的修改提交

这个过程中,你可以查看现在文件的状态(在哪个个区中)

git status

这个过程中,你可以放弃修改。

git checkout -- 文件名       //相当于放弃工作区的改动

如果已经把改动的文件add到了暂存区。则可以使用reset的命令。

git reset HEAD filename

当然如果已经提交了,那就可以强制回退的方法回到上一个版本的提交。加--hard的之前的都是完全舍弃的,不加的只是把HEAD指针移动了。

git log //查看提交版本的情况
git log --author 作者名字  //查看某个开发者的提交
git log --since/after     //日期  查看某日之后的提交
git log --until/before     //日期  查看某日之前的提交,这几个有时候想找版本还是挺实用的命令


git reset --hard HEAD~x    //来回退到前x个版本
git reset --hard HEAD^      //回退到前一个版本,几个^就倒退几次

当然如果你不小心回退过多了,只要你需要的东西commit过,就没问题,找到哈希值就可以了

git reflog  //会显示出你之前的所有操作
git reset --hard 某版本的版本号     //前进到需要的版本

以上就是对某次文件修改,提交,回退的基本操作。

3.分支

分支切换,改动前,需要你的工作区是clean的。用以下命令完成分支切换,删除,增加等。

git branch    //查看本地分支

git branch - a  //查看所有分支包括远端

git branch -d 分支名  //删除本地分支

git checkout  分支名  // 切换分支;如果是本地无,远程有的分支,则为拉远程分支到本地

git checkout -b  分支名 // 复制分支,分支当前分支到新分支

本地的推送到远端,远端拉取到本地

git push origin   //推送到远端的关联分支,把当前分支推送到远端对应分支,origin后面也可以直接加某个远程的分支名字
git pull     //同步本地仓库与远程仓库
git pull 远程分支名 // 相当于git fetch + git merge
git merge 分支名    // 一般用于本地合并分支,要先切到被合并方
git push origin --d 分支名  // 删除远程分支

一般来说,本地没有,远程有的分支,拉到本地,分支是同名字,自动关联的,本地推远程没有的也是会自动关联,但是,有时我要改变这一个关联。

git branch -vv  //查看本地和远程分支的关系
git branch --set-upstream-to origin/xxx  //建立了远程与当前分支的关联
git branch --unset-upstream        //unset即为解除

如果出现了冲突,要一步一步的解决冲突。解决冲突的过程可能用到下面的命令

git merge  --abort   //相当于放弃合并,使得返回合并前的状态

4.进阶命令

git stah

这一部分属于进阶操作了,一般掌握123日常绝对够用了。暂存是指,我想放下当前正在做的时,转而去作另外一件事。此时可以把工作区,暂存区所有工作存起来。    有时候,我们开发了一半,发现在错误的分支上开发的,那么就存起来,切换分支,导出来,岂不美滋滋。

git stash 

git stash save  hahha    //等同于git stash 但可以替你加哈哈哈的注释

git stash pop  //把堆栈中的内容(最近一次的)弹出到当前分支的对应工作目录上,此时,该内容会被删除

git stash list //查看堆栈中的内容,最上端的是要被弹出的那个

git stash clear //清除堆栈所有内容

git stash apply  //它与pop 的区别在于不会删除,可以通过后加名字制动回复某个stash到当前的工作目录

git submodule

管理子模块的命令,项目庞大了之后,要拆分成许多个子模块。你可以不需要负责子模块的维护,只需要同步更新子模块即可

不想总结这边的啦,有需要查就完事了

git clean

从工作空间中删除没有被 track 的文件,有时候,程序编译后生成一堆.o文件,很烦,OK,没有track的文件全删了,用它。

git clean -n 告诉你如果执行 git clean -f 的话会删除哪些文件。

git diff

对比两个文件的修改记录,有时候比较差异,可以用这个命令

git diff filename //比较工作区和暂存区

git diff --cached filename //比较暂存区与本地最新版本库

git diff commit-id commit-id //比较两个提交的差异

git revert commit_id

回撤之前某次提交。它和reset不同,工作区的文件什么的回退最近的提交前的状态,用git log 你会发现多了一次新的提交。相当于是在当前的分支下面做了一次反向的提交来抵消之前的提交

git tag

给某次提交版本,取得容易记忆的名字。这样方便查找。

git tag <name> //新建标签  默认为HEAD分支,也可以指定一个commit id

git tag -a <tagname> -m "hahahah" //类似于commit -m 后面加一些详细信息

git tag 可以查看所有标签
git tag -d <tagname>  //删除标签

git rebase

git rebase b也是把 b分支合并到当前分支,这种合并不是合并,专业来讲叫衍合,操作可以把本地未push的分叉提交历史整理成直线。记住这个图就可以啦。

git rebase - i 起始commit 终点commit    这个相当于合并几次提交,因为同一个问题提交多次,就会显得很乱,用这个处理挺好的

 

 

最后最最重要的 help ,没事就看看,忘了就看看!

git help  查看帮助

git help <命令>

git help -a 看看都有什么命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值