Git 使用指南

本文档提供了Git命令的快速参考指南,包括基本操作、分支管理、版本回退、标签管理等核心功能。通过实例介绍了如何高效地使用Git进行版本控制。

Git命令参考手册

开源中国progit文档

http://git-scm.com/docs

http://git-scm.com/book/zh/v2

微信公众号上的文章地址

深入浅出Git权限校验

如何使用Git Work Flow

IntelliJ IDEA中Git可视化使用

Git 中. gitignore 的配置语法

git reset, git checkout, git revert 区别 (译)

git reset和git revert

Git快速上手精华梳理:https://juejin.im/post/59bcc2f76fb9a00a652af631

https://blog.zengrong.net/post/1746.html

Git帮助命令:

git [command] -h

git help [command]

  1. 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
  2. 每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个快照流。
  3. Git保证完整性:Git 中所有数据在存储前都计算校验和,然后以校验和来引用。Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。 这是一个由 40 个十六进制字符(0-9 和 a-f)组成字符串,基于 Git 中文件的内容或目录结构计算出来。SHA-1 哈希看起来是这样:24b9da6552252987aa493b52f8696cd6d3b00373。实际上,Git 数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名。
  4. Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。
  5. Git 支持多种数据传输协议。 上面的例子使用的是 https:// 协议,不过你也可以使用 git:// 协议或者使用 SSH 传输协议,比如 user@server:path/to/repo.git 。
  6. 如果A分支是基于master分支上拉取的,且A分支和master分支均有新提交,此时如果使用git merge的话将会产生新的commit信息。(如:merge branch a)

Git 常用命令

history                     查看历史输入命令
echo 'Hello' > README       将'Hello'输出到README文件中


git config --global user.name "xujiangjun"
git config --global user.email "jiangjun.xu@tqmall.com"


git branch         查看本地所有分支
git branch -r      查看远程所有分支
git branch -a      查看本地与远程所有分支
git branch -vv     查看本地与远程分支的关联(本地跟踪的远程分支)
git branch -m oldBranchName newBranchName 重命名分支
git fetch -p       清理远程已经失效的分支


git add [.|*|**/filename.java]       可以使用ant通配符add指定类型文件
git add -f web.xml                   如果一个文件格式已经在gitignore中,如需加入暂存区,需要使用-f选项
git commit -m  "设置提交信息"          将暂存区内容提交到本地仓库
git commit -am "设置提交信息"          拥有git add 和 git commit -m 的功能
git commit --amend -m "设置提交信息"   修复最近一次Commit


git checkout master       切回到master分支(当有文件修改且未提交时切换分支,成功切换分支后文件的修改会被应用到该分支)
git checkout -f master    强制切回到master分支(当有文件修改且未提交时切换分支,成功切换分支后文件的修改不会被应用到该分支)


git branch -D erp-bugfix-160426-xujj              删除本地分支
git push origin --delete erp-bugfix-160426-xujj   删除远程分支


git checkout -b erp-bugfix-160426-xujj            从当前分支新建本地分支
git push -u origin erp-bugfix-160426-xujj         推送本地分支到远程(远程新建该分支,且设置关联关系)


git checkout test-0505                            根据远程分支创建本地分支并建立跟踪,本地创建test-0505分支
git checkout -b test origin/test-0505             根据远程分支创建本地分支并建立跟踪,本地创建test分支
git checkout --track origin/test-0505             根据远程分支创建本地分支并建立跟踪,本地创建test-0505分支
git branch -u origin/test-0505                  将当前分支设置跟踪远程分支test-0505


stash@{0}                    最近一次隐藏
git stash                    隐藏文件的变化
git stash save "设置隐藏信息"  隐藏文件变化,作用于git stash一致
git stash branch <branchname> [<stash>] 将某次stash检出为一个新分支,隐藏被恢复,同时stash list中该stash被drop ,检出为新分支,适合当恢复隐藏时出现冲突时使用
git stash drop [<stash>]     删除某次隐藏文件
git stash clear              删除所有隐藏历史


git stash pop           恢复隐藏的变化(最近一次的stash,即stash@{0}),且将其从栈中删除(栈:后进先出)
git stash apply         恢复某次的隐藏变化,不将其从栈中删除
建议:如果对应的git stash list列表中有多条记录且不清楚文件变化,则推荐使用IDEA中的可视化操作查看文件变化


git reset --hard           回退到上一个版本
git reset --hard HEAD^     回退到上一个版本
git reset --hard HEAD~100  回退到前100个版本
git reset --hard 108495b060dc5432c4fbe8222769dfa4b9b62bb9      回退到指定的某次提交
git reflog          当回退版本后git log 命令无法查看到最新的那个版本,可以使用该命令查看
警告:如果进行了版本恢复,则必须使用git push --force命令强制推送到远程,另外协同开发的人如果有最新的代码,
则需要进行分支删除,然后重新拉取分支(注意:版本回退后,如果删除远程分支后,再推送远程分支,这样是无效的,别人拉取的代码还会是最新的代码)

git revert 108495b060dc5432c4fbe8222769dfa4b9b62bb9      撤销某次已经提交的更改
Revert撤销一个提交的同时会创建一个新的提交。这是一个安全的方法,因为它不会重写提交历史。


git remote add origin http://dev.tqmall.com/tqmall/saint.git   添加origin仓库
git remote set-url origin [url] 修改origin的指向
git remote show origin     获取远程分支的更多信息
git remote rm origin       删除远程origin仓库


git tag                            列出已有的标签,并按字母顺序排序
git tag -l 'xujj*'                 按特定模式查找匹配的标签(单引号可以去掉,不去掉也可以)
git show v2.0                      显示v2.0信息

git tag -a v2.0 -m '2.0版本'        打一个附注标签,标签名为v2.0
git tag v2.1-lw                    打一个轻量标签,不需要加-a -m -s 等选项
git tag -a v2.5 9fceb02            对过去提交打标签,即对9fceb02这次提交打个Tag

git tag -d v2.5                    删除本地v2.5标签
git push origin —delete v2.5       删除远程标签与删除远程分支命令类似

git push origin v2.5               将本地v2.5这个标签push到服务器
git push origin --tags             将本地所有标签(不在服务器上的)push到服务器上
git checkout -b branch_name v2.0   将v2.0这个标签检出到branch_name分支上

git config --global pull.rebase true


不建议使用git log命令,推荐使用IDEA上的可视化工具查看
git log -p -2              最近两次提交的内容差异(推荐使用IDEA查看变化)
git log --stat             可以很方便的查看所有提交修改了哪些文件(推荐使用IDEA查看)
git log [version] --stat   查看某次提交修改了哪些文件
git log --pretty=format:"%h - %an, %ar : %s"   自定义日志输出格式
git log --pretty=format:"%h %s" --graph        图形化定义日志输出格式



存储凭证

git config --global credential.helper store

执行完该命令后,执行git pull输入用户名密码后,将自动保存,此后无需再次输入

执行完后,用户主目录下的.git-credentials文件内容如下:https://{username}:{password}@github.com



IntelliJ IDEA中git的神器show history(可以恢复几分钟或者几天前的误删代码)

推荐新建项目同时新建.gitignore文件,当使用git add * 命令添加所有文件时,会提示已在.gitignore中声明的忽略文件

 

转载于:https://my.oschina.net/xujiangjun/blog/630896

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值