博客
关于我
git使用和常见命令
阅读量:547 次
发布时间:2019-03-08

本文共 3633 字,大约阅读时间需要 12 分钟。

先送上一张常见命令表

在这里插入图片描述

1、刚下载安装完git后,初次配置:

// 先设置邮箱和用户名,用于提交的时候验证的git config --global user.name "xxx" git config --global user.email "xxx"

2、准备一个要clone的项目(码云、github、gitlab都可以),比如链接地址为: https://gitee.com/ xxxxxx.git (这个只是示范,不是真实有效的地址)


3、找一个空目录,用于存放代码文件的,在目录中右键,选择git bash。调出命令面板。执行以下语句:

git init  // 初始化一个空仓库git remote add origin https://gitee.com/ xxxxxx.git  // 关联到远程仓库(这里需要换成自己的项目地址)git pull origin master  // 获取远程仓库内容  pull就是获取的命令或 ---------------------------------------------------------------------git clone https://gitee.com/ xxxxxx.git   // 如果不用上面的语句,也可以直接执行clone命令。效果和上面的命令一样。

如果是clone私有的项目,可能需要你输入帐号密码,输入后会自动把项目下载下来。


4、通常养成一个好的习惯,在下载代码后,新建一个自己的分支,再去修改文件的内容,通常不要直接在master(默认分支)上直接开发。(至于为什么要创建那么多分支进行开发,也不是一两句说的清楚的)

执行以下语句,创建并切换到dev_test分支(注意图中红色圈住的区别,意思就是你当前在哪个分支下)git checkout -b dev_test

主要红色框圈住的区别

我们也可以试下,创建一个已存在的分支
在这里插入图片描述

// 分支相关命令:git branch  // 查看分支git branch dev_test  // 创建一个名为dev_test的分支git checkout dev_test // 切换到名为dev_test的分支git checkout -b dev_test // 创建并切换到dev_test的分支(常用)git merge dev_test // 把dev_test的分支合并到当前分支git branch -d dev_test 删除名为dev_test的分支git branch -D dev_test  //强行删除一个名为dev_test的分支

5、在分支上(或者在master上)修改好了文件的内容,准备提交到远程仓库。可以通过命令查看修改的内容和状态

git status  // 查看文件状态//(看到红色的就是已经修改过的文件,而且没添加到仓库中)// (绿色的代表修改过的文件,已经添加到本地仓库,还没提交到远程仓库)git add .   // 把所有修改过的文件,把需要提交的文件打包起来或者执行git add -A  // 和git add .效果一样// 这时候在执行git status就会看到文件都变绿色了git commit -m '本次提交的备注' // 刚才的add .只是把所有文件打包起来,git commit 才是提交到本地仓库,-m 后面是本次提交文件的备注git push origin dev_test// push 把本地仓库的内容推送到远程仓库 // origin 这个是默认的// dev_test  代表dev_test分支,刚才我们是创建了dev_test分支,如果想推送到其他分支,就改成其他分支名称即可

如果不出意外,会成功提交,可以到自己项目那里,找到对应的分支查看是否已经推送上去。

当然意外还是会有的,比如和你一起开发的人,比你早推送了一个版本到远程仓库中,那么你在推送的时候,会报一个错误,提示需要先合并代码(注意只是合并代码,不是合并分支)如:

在这里插入图片描述

如果线上的代码,没有冲突,那么pull下来后,你就可以重新执行git push origin master 命令,把代码提交上去了(通常git会帮我们合并一些代码,并不会造成冲突)。当然还会有冲突的情况(比如2个人同时修改了同一个文件的同一个地方),那么使用pull命令就会变成这样:

在这里插入图片描述
这时候就可以全局搜索一下>>>>>这个代表冲突开始的地方
在这里插入图片描述
解决冲突也很简单,只要保留其中一个地方就可以了。把<<<<开头到 >>>>结尾的地方,改成正确的代码,然后重新执行 git add .git commit -m '备注'git push roigin master 。 重新推送上去就可以了
在这里插入图片描述


6、假设我们开发的dev_test分支测试通过了,需要合并到master分支

那么就执行切换分支的命令,
1)切换到master分支
2)在master分支下 使用 git pull 确保master分支的代码是最新的
3)使用合并分支的命令 git merge dev_test
4)然后在使用git push origin master 推送到远程仓库的master分支上


7、关于git的一些拓展

1)假设修改的文件修改错了。这次并不想提交这个文件

  • 解决方法1:删除该文件,在使用git add .
  • 解决方法2:先使用git add . 然后执行 git resert head 需要撤回的文件名git reset head 需要撤回的文件名
    在这里插入图片描述

2)关于一些一直都不想提交的文件(比如使用vscode的时候,会有一个

.vscode的文件夹,和代码无关,不想提交到远程仓库,可是又不希望每次都剔除)

  • 可以使用默认的一个文件,添加要排除的东西 .gitignore 文件。可能在window下不能直接创建,那就在git bash 中,使用 touch .gitignore 。就会发现多了这么一个类似txt文件。然后在里面添加需要剔除的内容,一行一个
  • 比如:这样就可以一劳永逸,不用每次都担心把额外的文件提交上去了(码云或者其他平台已经有很多gitignore文件模版,在创建项目的时候可以留意下)在这里插入图片描述

3)关于git的其他一些命令

  • 查看文件修改的内容:.git diff 文件名
  • 有时候自己改了很多地方,可是并不像保存,想重新下载一份线上的代码:
git fetch --all  	git reset --hard origin/master 	git pull

  • 临时保存工作区(用的相对较少)
git stash  //把当前的工作临时存储起来,然后自己切换分支做其他的事情    git stash list  //查看存储的工作区列表    git stash pop  //恢复最近的一次工作,并且删除记录(常用)    git stash apply stash@{id}  //恢复指定id的工作,不过不会删除记录    git stash drop   //删除

  • 标签
git tag 
为当前分支打一个 name 的标签 git tag
1586156 为历史提交打标签 1586156为历史提交的一个id号 git tag 查看标签 git push origin
可以推送一个本地标签; git push origin --tags可以推送全部未推送过的本地标签; git tag -d
可以删除一个本地标签; git push origin :refs/tags/
可以删除一个远程标签。 git show
查看这个tag对应的id的信息

  • 版本控制(重点)
git log    // 查看最近提交的版本号git reset --hard HEAD^   (回退上一个版本,^^回退2个版本)git reset --hard 315615   // 315615是在git log 中可以看到的// 回退指定的版本号id(这里的id在git log中可以看到,版本id只需要取前几位数git就能识别出来了)git reflog   // 记录每一次的命令

  • 记住密码(如果你用的不是ssh的话,每次提交 / clone 代码都要输入帐号密码)
在C盘中的用户对应用户的文件夹下找到.gitconfig追加:[credential]helper=store或者终端执行git config --global credential.helper store这样就会使用记住密码
你可能感兴趣的文章
Mysql 中的日期时间字符串查询
查看>>
mysql 中索引的问题
查看>>
MySQL 中锁的面试题总结
查看>>
MySQL 中随机抽样:order by rand limit 的替代方案
查看>>
MySQL 为什么需要两阶段提交?
查看>>
mysql 为某个字段的值加前缀、去掉前缀
查看>>
mysql 主从
查看>>
mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
查看>>
mysql 主从互备份_mysql互为主从实战设置详解及自动化备份(Centos7.2)
查看>>
mysql 主从关系切换
查看>>
MYSQL 主从同步文档的大坑
查看>>
mysql 主键重复则覆盖_数据库主键不能重复
查看>>
Mysql 事务知识点与优化建议
查看>>
Mysql 优化 or
查看>>
mysql 优化器 key_mysql – 选择*和查询优化器
查看>>
MySQL 优化:Explain 执行计划详解
查看>>
Mysql 会导致锁表的语法
查看>>
mysql 使用sql文件恢复数据库
查看>>
mysql 修改默认字符集为utf8
查看>>
Mysql 共享锁
查看>>