git操作常用命令

一、使用git

git是什么?

Git是目前世界上最先进的分布式版本控制系统。

  • SVN与Git的最主要的区别?
    • SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

    • Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

git能做什么?

  • 文件版本管理
    作为版本管理系统诞生的Git,最重要的是可以帮助团队进行文件管理,各种源代码和文档等。
  • 代码评审
    代码评审作为软件开发流程中重要的一环,是项目顺利进行提供有效的保障,使用过Github的人对Pull Request应该不会陌生,如果高效进行代码就是另一个问题了。
  • 持续集成
    持续集成作为软件的开发和发布流程中最重要的一环,通过进行单元测试、自动化测试和自动构建发布,可以非常容易发现和改正Bug, 通过钩子(Hook),Git可以和构建工具(如Jenkins)结合构建持续集成环境。

git如何使用?

需要从git官网下载,然后进行默认安装即可。
Alt

二、 git配置

  • 查看配置信息:
 git config --list
  • 设置用户名和邮箱:
git config --global user.name "用户名"
git config --global user.email "邮箱" 

如果配置错了,使用unset删除删除某个全局配置:

git config --global --unset user.eamil
  • 配置ssh
    为了可以使用ssh方式上传和提交代码,需做如下配置, 先在本地生成密钥,然后复制到远程新增的ssh密钥key中, 即复制本地生成的id_rsa.pub文件中的内容
ssh-keygen -t rsa -C 邮箱 
  • 解决git一直输入用户名和密码的问题:
git config --system --unset credential.helper  //在git中输入此命令后,每次拉去代码需要重新输入用户名和密码
git config --global credential.helper store   //这样再获取代码提示输入用户名和密码,输入之后后续就不需要再次输入了。
  • 设置git是否忽略文件大小写
git config core.ignorecase //查看
git config core.ignorecase false //不忽略

三、git常用命令

git初始化                      git init
查看文件是否被git管理          git status  
将全部文件提交到暂存区         git add .
提交到本地git仓库              git commit -m "提交描述"
提交到远程仓库                 git push
查看git版本日志信息            git log
查看每一次提交的日志信息       git reflog
回退到某个版本                 git reset --hard (前六位哈希值) 
                              HEAD^:表示上一个版本  
                              HEAD~100:表示网上100个版本
查看远程仓库地址         git remote -v
新增关联仓库地址         git remote add origin 仓库地址
删除关联仓库地址         git remote rm origin 
修改关联仓库地址         git remote set-url origin 仓库地址

四、git分支

//创建和查看分支
查看分支:          git branch
创建分支:	        git branch 分支名
切换分支:	        git checkout 分支名  
既创建又切换:      git checkout -b 分支名
创建并切换到没有提交历史的分支:  git checkout --orphan 分支名
    
//删除分支
删除分支:          git branch -d 分支名 (删除本地分支)
删除远程分支:      git push orgin -d 分支名  (删除远程分支)
如果要丢弃一个没有被合并过的分支,
可以通过强行删除:  git branch -D 分支名。

//分支合并
分支合并:     git merge 分支名(在master分支上合并子分支)
撤销合并:     git reset --merge   解决报错:fatal: You have not concluded your merge
查看分支合并图: git log --graph
普通分支合并:  git merge --no-ff -m "普通合并" 分支名
            (禁用fast forward,能看出曾经做过合并)

五、git操作github上的项目

克隆github仓库:       git clone 仓库路径  	
提交到远程仓库:       git push origin master
线下同步线上项目:     git pull origin master

项目常用操作流程

1、本地关联远程仓库:git remote add origin git仓库地址

查看关联远程仓库
git remote -v

2、第一次下载项目(远程-本地):

git clone git 仓库地址

3、第一次发布项目(本地-远程):三步

git add .
git commit -m "描述"
git push -u origin master

4、更新(远程-本地):

git pull

5、提交(本地-远程):三步

git add .
git commit -m "描述"
git push master

六、git合并dev分支到master完整步骤

1、提交dev分支代码

git add .
git commit -m "备注"
git push

2、切换分支到master, 并更新

git checkout mater
git pull

3、将dev分支合并到master, 并解决冲突,解决冲突然后重复第一步操作提交一次,再推送到远程

git merge dev

//如果有冲突,先提交一次
/*
git add .
git commit -m "备注"
git push
*/

git push

七、tag标签

在git代码管理时侯,我们想对某个特定的commit 添加标记,比如要标识版本信息,这时候就可以用的git中的打标签功能。类似给书放书签,可以快速定位到指定位置。

创建标签

git tag -a v1.0 -m "正式版本"

表示给当前分支创建标签,绑定的是最近一次commit的版本,如果给某个commit打标签:

git tag -a v1.0 6d936671f44cd376ebb71c4306ad8df55af564a5 -m "正式版本"
  • -a 创建指令 后跟标签名
  • -m 备注 后跟备注内容

查看标签

按字母排序,查看当前分支上所有标签:

git tag 

显示v1.0的详情,包含备注:

git show v1.0 

查看远程所有标签:

git ls-remote --tags 

删除标签

删除本地:

git tag -d v1.0 
  • -d 删除指令 后跟标签名称

删除远程:

git push origin :refs/tags/v1.0

推送到远程

推送所有标签:

git push origin --tags 

推送指定标签:

git push origin V1.0

检出标签

git checkout v1.0

实际业务中切换到tag上修改了代码,需要新建一个分支才能提交代码。例如:在v1.0上修改了bug

git checkout -b bugfix

然后再合并bug分支,重新打修改bug后的标签

八、常见案例

在项目开发中使用git常见操作

posted @ 2019-02-26 12:45  smile_or  阅读(223)  评论(0编辑  收藏  举报