关键词:
GIT工作原理
要了解GIT工作原理,先了解GIT的这几块区域:
工作区域划分
工作区:指的是本地工作空间,如果刚拉取下来的代码,没有修改的内容,这块区域是空白的 (modified-已修改状态)
暂存区:将改动内容进行暂存 (staged-已暂存状态)
HEAD:HEAD指针,当前指向的分支
本地版本库:(commited-已提交状态)
远程仓库:push操作后,将本地版本库推送到远程仓库
工作流程
- 在工作区中修改文件。(modified)
- 将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。(staged)
- 提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。(commited)
开发最常用的五个命令
1、git clone projectUrl 拉取远程仓库代码到本地,projectUrl是一个具体的git仓库地址路径
2、git add 将工作区的修改的内容添加到暂存区
3、git commit 将暂存区域的的内容提交到HEAD所在的分支
4、git pull 拉取远程分支内容到本地
5、git push 将HEAD分支内容推送到远程分支上面
GIT常用命令
查看文件的状态
git status
Changes not staged for commit;
这段信息提示我有修改的信息没有提交到暂存区,建议使用git add 命令进行添加到暂存区域,或者使用git checkout 命令放弃工作区的修改
Untracked files:
表示这些文件是新建的,还没有纳入git的管理,建议使用git add 命令将这些文件纳入git管理
git status -s // 查看状态,比较简短的信息展示
红色M:表示有改动的文件,还没有添加到暂存区
绿色M:表示已添加到暂存区的文件
??:表示还没有纳入git管理的文件
A:表示刚纳入git管理的文件
U:表示有冲突的文件
git add .
git add Test.java
1、将未跟踪的文件纳入git的管理
2、将已纳入git管理的文件的改动添加到暂存区域
3、冲突解决后,标记冲突已经解决
将远程仓库aaa 重命名为 bbb
git remote rename aaa bbb
移除远程仓库bbb
git remote remove bbb
查看某个远程仓库
git remote show origin
查看仓库的简写
git remote
查看仓库的简写以及对应的URL
git remote -v
查看本地和远程分支信息情况
git remote show origin
同步远程已经删除的分支
git remote prune origin
更新远程分支列表
git remote update origin -p
分支的命令
查看项目分叉历史图
gitk --all
git log --oneline --decorate --graph --all
增加develop分支
git checkout -b develop
删除远程develop分支
git push origin :develop
删除本地develop分支
git branch -D develop
合并分支
git merge 2.8.0-zd // 将2.8.0-zd分支合并到当前分支,这是基于本地分支进行操作,需要先 pull最新代码
tag的常用命令
创建本地tag
git tag -a 3.2.8-RELEASE -m ‘ 版本3.2.8-RELEASE‘
查看有哪些tag
git tag
要显示附注信息,我们需要用 show 指令来查看
git show 3.2.8-RELEASE
推送tag:3.2.8-RELEASE到远程代码库
git push origin 3.2.8-RELEASE
git push origin --tags
删除本地tag
git tag -d 3.2.8-RELEASE
删除远程tag
git push origin :refs/tags/3.2.8-RELEASE
git push origin --delete 3.2.8-RELEASE
拉取远程tag到本地
git fetch origin tag 3.2.8-RELEASE
检出3.2.8-RELEASE内容,仅限于查看
git checkout 3.2.8-RELEASE
6、commit的常用操作
修改已经提交的注释
git commit --amend
git commit -m "提交commit,并且编写注释"
查看已有的commit
git log
查找某个文件的commit变更历史
git log --pretty=oneline Test.java
显示最近一次commit的修改信息
git log -p -1
显示commit的文件修改统计信息。
git log --stat
查找注释信息包好test的commit的信息
git log --grep "test"
将ID为19ed20582a5fe0dc8a5da3bc1cb0a9c0ef663346 的commit合并到当前分支
git cherrry-pick 19ed20582a5fe0dc8a5da3bc1cb0a9c0ef663346
放弃本地commt
git reset --hard FETCH_HEAD
7、其他常用场景操作
记住用户名和密码:
git config --global credential.helper store
执行后,只要输入一次就行了
合并时忽略某文件
1、在项目跟目录下面新建文件.gitattributes
2、文件中添加 pom.xml merge=ours 配置
3、执行命令进行配置,git config merge.ours.driver true
执行完成以上步骤,merge的时候就不会把pom.xml的变更合并过来了
在develop分支拉取分支用来修复bug
git checkout develop // 切换到develop分支
git checkout -b bugfix // 基于develop分支拉取一个分支bugfix 并切换到该分支
git push -u origin bugfix //推送bugfix分支到远程服务器上面
然后发起请求合并,等待管理人员进行代码合并
基于tag:3.2.8-RELEASE拉取分支修复bug,然后发布3.2.9-RELEASE版本
git checkout 3.2.8-RELEASE
git checkout -b bugfix
git push -u origin bugfix
git tag -a 3.2.9-RELEASE -m ‘ 版本3.2.9-RELEASE‘
git push origin 3.2.9-RELEASE
develop分支需要上测试环境,基于develop分支打一个tag
git tag -a 3.2.8-RELEASE -m ‘ 版本3.2.8-RELEASE‘
git push origin 3.2.8-RELEASE
某些文件不想纳入git管理,新建.gitignore文件,添加以下内容
# 忽略所有的 .settings 文件
.settings/
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
target/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf
初始项目推送到git仓库
git init // 创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件
git add . // 标识那些文件要放到git仓库进行追踪记录
git commit -m "first commit" //提交到暂存区域
git remote add origin http://proxy.clwj.sunline.cn:3000/xieqq/sssss.git //推送到远程git远程服务器上面
git push -u origin master 推送master分支到远程
git clone http://proxy.clwj.sunline.cn:3000/xieqq/sssss.git // 将git服务器上面的远程项目拉取下来。包含所有的分支和tag代码信息
git原理和常用命令速成(代码片段)
...令就万事大吉了。但是随着GIT使用的深入,如果不了解些原理就会遇到各种各样让人一脸懵逼的问题,所以还是要对GIT原理有一些基本了解,这里默认已经掌握常用的基本指令了。(随便搜教程看下就行,例如clonepullpushaddcommitlo... 查看详情
git之深入解析reset命令原理以及与checkout命令的区别(代码片段)
...或者维护Git仓库、实现代码控制所需的大多数日常命令和工作流程,尝试跟了踪和提交文件的基本操作,并且掌握了暂存区和轻量级地分支及合并的威力。如果想进一步对Git深入学习,可以学习一些Git更加强大的功能... 查看详情
git开发流程以及常用命令
....在本地进行代码修改4.gitaddfile_name将修改后的文件添加到工作区5.gitcommit-mmessage将工作区的内容提交到版本库6.gitstatus查看仓库当前的状态7.gitpushorigintest:test将本地分支推送 查看详情
一篇文章,教你学会git(代码片段)
在日常工作中,经常会用到Git操作。但是对于新人来讲,刚上来对Git很陌生,操作起来也很懵逼。本篇文章主要针对刚开始接触Git的新人,理解Git的基本原理,掌握常用的一些命令。一、Git工作流程以上包括一些简单而常用的命... 查看详情
git常用命令(代码片段)
...sp;二、单机模式Git把管理的文件分为了两个区域四个状态工作区:当前开发程序所在目录称为工作区,即:工作开发都是在该目录,该区域的文件会有状态的变化且状态由git自动检测,如果程序中文件做任何操作(增、删、改)... 查看详情
常用git命令以及处理技巧(代码片段)
常用git命令以及处理技巧基础常用命令#克隆gitclonegit@github.com:fengcms/fengcms.git#拉gitpull#添加某一个文件gitadd"src/xxx.js"#添加所有文件,严禁使用`gitadd.`这样的命令!这完全是不同的含义!gitadd-A#暂存——... 查看详情
git常用命令操作(代码片段)
...器,开发人员本地都有localrepository集中式必须要联网才能工作,而且对网络的依赖性较强 查看详情
常用git命令总结(代码片段)
Git是我们日常工作中使用频率极高的工具,各种指令让人眼花缭乱,今天,我们就在这里总结一下它的一些基本指令,算是做一份操作笔记吧。前言Git是我们日常工作中使用频率极高的工具,各种指令让人眼花缭乱,今天,我们... 查看详情
git常用命令清单(代码片段)
...b000概念简单介绍在A目录使用git进行版本管理,A目录即为工作区,我们在工作区上面操作文件(创建、修改、删除等等),A目录下的隐藏目录.git 查看详情
git操作常用命令(代码片段)
git仓库配置常用命令####首先下载代码+git下载代码命令:gitclone[git地址][下载位置]####分支命令1.查看分支gitbranch2.查看远程分支gitbranch-r3.查看所有分支(本地和远程)gitbranch-a4.创建分支gitbranch[分支名称]5.切换分支gitcheckout[分支名称... 查看详情
git常用操作入门(基于bash命令快速入门)(代码片段)
...好需要用Git作为版本控制,而且将会用到大量的分支以及操作。最恐怖的是,之前都用SourceTree作为Git的图形化界面工具,一直没有好好地用GitBASH。这次基本上都是通过在BASH上面操作(虽然有IDEA的图形工具)&... 查看详情
git常用基本命令(代码片段)
...关操作tag相关操作撤销相关操作参考资料本文主要介绍Git常用的基本命令。基本命令仓库相关命令创建新仓库gitinit克隆项目gitclonehttps://github.com/Erik-ly/git-test.git查看当前配置gitconfig--li 查看详情
使用plumbing命令来深入理解gitadd和gitcommit的工作原理(代码片段)
...完成(见下文),plumbing命令可以帮助我们了解git底层的工作原理阅读本文还需要了解.git目录的 查看详情
git常用操作(代码片段)
...2.常用命令常规入库gitstatus#查看修改gitaddxx.c/--all/.#添加工作区文件到暂存区;(指定修改文件/项目所有修改文件/当前目录下所有修改文件)gitcommit-s-m"****描述****"#提交暂存区文件到本地仓库;(-s显 查看详情
git常用操作
Git介绍Git工作机制Git代码托管中心Git常用命令Git分支概述和优点Git团队协作机制Git工作机制Git代码托管中心代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。局域网GitLab互联网GitHub(外网)Gitee码云(... 查看详情
git常用操作命令(代码片段)
设置ssh-keyssh-keygen-trsa-C"18217426147@163.com"gitclonegitclonegit@e.coding.net:weimeigu/auction.backend/auction.backend.git创建并且切换分支gitcheckout-bdev开发完成使用命令gitaddreadme.txtgitcommit-m"branchtest"合并分支g 查看详情
那些年,我们向往使用的git命令git常用命令总结(代码片段)
...很熟悉,最近想总结Git的原因是笔者在带新人和项目工作中经常发现一些不了解Git或者只会进行基本的操作,面对合并、回退等操作就一脸蒙蔽。一旦发生冲突就手足无措。工作中有很大一批人停留在clone、commit、pull、pu... 查看详情
git常用命令和配置(代码片段)
...,但日常使用只要记住下图的6个主要命令,就可以了。工作区(WorkingDirectory)在git管理下的正常目录都算是工作区。就是你平时存放项目代码的地方。暂存区(Stage/Index)暂存区,用于临时存放你的改动,事实上它只是一个文件,... 查看详情