推荐的工作流程是:
1. 基于公共分支创建一个私有分支。
2. 经常向这个私有分支commit代码。
3. 一旦你的代码完善了,就清理掉下私有分支的历史。
4. 将干净的私有分支merge到公共分支中。
/*************************************************************************************/
git init / git clone
.gitignore的语法
#为注释行,空行不匹配任何文件,这两个特征可以使.gitignore文件可读性强一些。
通过!取反。
斜杆/结尾的字符,被当做文件夹处理,文件夹下的所有文件将被忽略。
除去以上三种情况,其他时候使用标准的glob模式匹配。
glob语法:
* -> 匹配任意字符
[ab09] -> 匹配多种可能
? -> 匹配单个字符
[0-9a-zA-Z] -> 匹配一个范围
\ -> 转义字符
.gitignore文件实例:
# 此为注释– 将被Git 忽略
*.a # 忽略所有.a 结尾的文件
!lib.a # 但lib.a 除外
/TODO # 仅仅忽略项目根目录下的TODO 文件,也就是git家目录,不包括subdir/TODO,不太常用。
build/ # 忽略当前目录下build/目录下的所有文件,常用
doc/*.txt # 会忽略doc/notes.txt 但不包括doc/server/arch.txt
git add .
git commit
git diff:
workdir cache
git diff –cached:
cache repo
git rm –cached log/\*.log
delete but remain work dir files
git rm log/\*.log
recursive delete
git mv a.txt b.txt
rename the file
/*************************************************************************************/
git log -p -2
recent 2 commits, and the differences.
git log –pretty=format:”%h – %an, %ar : %s”
选项 说明
-p 按补丁格式显示每个更新之间的差异。
–stat 显示每次更新的文件修改统计信息。
–shortstat 只显示–stat 中最后的行数修改添加移除统计。
–name-only 仅在提交信息后显示已修改的文件清单。
–name-status 显示新增、修改、删除的文件清单。
–abbrev-commit 仅显示SHA-1 的前几个字符,而非所有的40 个字符。
–relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。
–graph 显示ASCII 图形表示的分支合并历史。
–pretty 使用其他格式显示历史提交信息。可用的选项包括oneline,short,full,fuller 和format(后跟指定格式)。
-n 仅显示最近的n 条提交
–since, –after 仅显示指定时间之后的提交。
–until, –before 仅显示指定时间之前的提交。
–author 仅显示指定作者相关的提交。
–committer 仅显示指定提交者相关的提交。
/*************************************************************************************/
撤销操作:
1,修改最后一次提交
git commit –amend
2,取消已经暂存的文件
git reset HEAD new.txt
3,取消对文件的修改
git checkout — new.txt
/*************************************************************************************/
远程仓库:
查看 -
git remote -v
git remote show origin
添加 -
git remote add origin git@github.com:yidao620c/jaxbdemo.git
git remote show pb
抓取 – git fetch pb
fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,
只有当你确实准备好了,才能手工合并。
如果设置了某个分支用于跟踪某个远端仓库的分支(参见下节及第三章的内容),
可以使用git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。
推送 -
git push origin master
将本地分支master推送到远程仓库origin
只有在所克隆的服务器上有写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。
重命名 -
git remote rename pb paul
删除 -
git remote rm paul
/*************************************************************************************/
标签:
显示 -
git tag
git tag -l ‘v1.4.2.*’
打annotated标签 -
git tag -a v1.4 -m ‘my version 1.4′
打lighted标签 -
git tag v1.4.1
推送标签 -
git push origin v1.4.1
git push origin –tags
/*************************************************************************************/
分支:
新建 -
git branch testing
切换分支 -
git checkout testing
新建并且切换到分支iss53 -
git checkout -b iss53
合并 -
先回到master分支:git checkout master
再合并分支hotfix:git merge hotfix
如果是直接上游的话,会出现Fast forward提示
合并之后赶紧删掉分支hotfix:git branch -d hotfix
三方合并 -
git checkout iss53, do some change
git checkout master
git merge iss53
Git会用两个分支的末端和它们的共同祖先进行一次简单的三方合并计算
合并完删除分支iss53:git branch -d iss53
冲突的合并 -
git status:查看标志位unmerged文件,然后亲自整合到一起
git add:标记为resolved
git commit:提交修改后的文件
分支管理 -
git branch -v
git branch –merged:查看已被并入当前分支的分支,可删除了
git branch –no-merged
git branch -D testing:强制删除
分支式工作流程 -
长期分支:master –> develop –topic直线分支
特性分支:mater –> iss01, mater –> iss02…
远程分支 – origin/master
远程分支(remote branch)是对远程仓库状态的索引
远程分支就像是书签,只有在进行Git的网络活动时才会更新
一次Git 克隆会建立你自己的本地分支master 和远程分支origin/master,
它们都指向origin/master 分支的最后一次提交
只要你不和服务器通讯,你的origin/master指针不会移动
将远程分支合并到当前分支 -
git merge origin/serverfix
在远程分支的基础上分化出一个新的分支来 -
git checkout -b serverfix origin/serverfix
跟踪分支 -
默认clone时候,master -> origin/master
git checkout –track origin/serverfix,默认创建本地serverfix分支跟踪
git checkout -b sf origin/serverfix,创建本地sf分支跟踪
删除远程分支 -
git push origin :serverfix
git push [远程名] [本地分支]:[远程分支],你懂的
衍合 rebase:
git checkout experiment
git rebase master
它的原理是回到两个分支(你所在的分支和你想要衍合进去的分支)的共同祖先,
提取你所在分支每次提交时产生的差异(diff),把这些差异分别保存到临时文件里,
然后从当前分支转换到你需要衍合入的分支,依序施用每一个差异补丁文件。
现在,你可以回到master 分支然后进行一次快进合并,
因为现在的分支指针变成了…master…experiment…
git rebase –onto master server client
注:永远不要衍合那些已经推送到公共仓库的更新
如果把衍合当成一种在推送之前清理提交历史的手段,而且仅仅衍合那些永远不会公开的commit,
那就不会有任何问题,记住在分享之前进行衍合,分享后就再也不要衍合了。
本人博客已搬家,新地址为:http://yidao620c.github.io/
相关推荐
HTML学习和Git的常用命令HTML学习和Git的常用命令HTML学习和Git的常用命令 HTML学习和Git的常用命令HTML学习和Git的常用命令HTML学习和Git的常用命令 HTML学习和Git的常用命令HTML学习和Git的常用命令HTML学习和Git...
git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git常用命令总结git...
### git的常用命令使用 #### 基本概念与初始化 - **Git**:一种分布式版本控制系统,可以高效地管理项目源代码的变化。 - **初始化仓库**:通过`git init`命令可以将当前目录初始化为Git仓库。若需在特定目录下...
Git 常用命令 Git 是一个版本控制系统,广泛应用于软件开发和项目管理中。以下是 Git 中一些常用的命令: 1. Git 文件撤销命令 在 Git 中,可以使用 git reset HEAD . 命令撤销所有已经添加的文件。如果只想撤销...
git常用命令教程,新老手必看,研究透可视化git工具git常用命令教程,新老手必看,研究透可视化git工具git常用命令教程,新老手必看,研究透可视化git工具git常用命令教程,新老手必看,研究透可视化git工具git常用...
这里总结了git的常用命令思维导图,清晰易懂,快速上手
git常用命令速查表
Git 常用命令整理及解析 Git 是一个开源的分布式版本控制系统,用于跟踪项目中的代码变化,可以帮助开发者更好地管理代码。下面是 Git 中一些常用的命令,这些命令可以帮助开发者快速掌握 Git 的使用。 基本命令 ...
在本文中,我们将深入探讨Git Bash中的常用命令及其用法。 1. **初始化Git仓库**: 使用`git init`命令可以在当前目录创建一个新的Git仓库。这将生成一个隐藏的`.git`目录,存放Git的所有元数据。 2. **添加文件...
### Git常用命令手册详解 #### 一、概览 本篇文档主要介绍了一套由国外开发者整理的Git常用命令速查表,旨在帮助用户快速掌握并应用Git的基础操作。通过这些简洁明了的命令,即使是Git新手也能迅速上手进行版本...
git常用命令markdown版
平时常用的git命令
一张图展示 Git 常用命令.pdf
标题《git常用命令大全》所涉及的知识点覆盖了使用Git进行版本控制的日常操作。Git是一个开源的分布式版本控制系统,被广泛用于代码管理,可以有效地追踪文件的变更,管理分支的合并与冲突,以及回退到旧版本等。...
1 安装GIT 代码如下:$ sudo aptitude install git$ sudo aptitude install git-doc git-svn git-email git-gui gitk git软件包包含了大部分Git命令,是必装的软件包,第二...3 常用命令 (1)git branch 查看本地分支
以下是对Git常用命令的详细整理,包括配置、基本操作、分支管理、合并、标签、回滚以及日志和远程操作。 1. **配置操作** - `git config --global user.name "Your Name"`:进行全局配置,设置Git的用户名。 - `...
常用git命令总结,常用git命令总结。 常用git命令总结。
"git学习常用命令总结" Git是当前最流行的版本控制系统之一,对于开发者来说,掌握 Git 的基本命令是必不可少的。本文将对 Git 的常用命令进行总结,帮助开发者快速掌握 Git 的使用。 初始化操作 在使用 Git ...
Git常用的命令总结,适用于新手学习.具体功能介绍,均为图片,没有文档的哦!