浅谈 ubuntu 中 git 的使用

既然讲到 git 先谈谈 git 和 github 的关系吧!

什么是 git ?

  • Git — The stupid content tracker, 傻瓜内容跟踪器。Linus Torvalds 是这样给我们介绍 Git 的。
  • Git 是 global information tracker 全球信息追踪器的英文缩写。
  • Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
  • Git 是一种专为处理文本文件而设计的版本控制系统。归根到底,这就是代码的本质:一堆堆以某种方式联合在一起的文本文件。Git 是一个可安装应用,它允许你对你自己所做的更改进行注释,用以创建易于导航的系统历史。
  • Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持
  • Git 是软件,它可在本地建立仓库,你写的代码的各个版本都可以存着。
    版本控制(Version control):顾名思义,版本控制系统是任何能让你了解到一个文件的历史,以及它的发展过程的系统。

什么是 github ?

  • gitHub 是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名 gitHub。
  • github 是网上仓库,你写的代码的各个版本都可以存着。
  • github 就是让你把工作(通过Git提交进行注解)存储在了一个指定的在线文件夹(repo)。
  • GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge 或 Google Code 这样的服务不同,GitHub 的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。

git命令总结

  • 创建:
  1. 在本地克隆一个已创建的仓库:$git@gitee.com:Seul0725/learnNotes.git
  2. 创建一个新的本地仓库:$git init
  • 本地修改:
  1. 显示工作路径下已修改的文件:$git status
  2. 显示与上次提交版本文件的不同:$git diff <file>
  3. 把当前所以修改添加到下次提交中:$git add
  4. 把对某文件的修改添加到下次提交中(实现暂存文件的部分改动):$git add -p <file>
  5. 提交本地所以的修改:$git commit -a
  6. 附加消息提交:$git commit -m 'message here'
  7. 当前分支中未提交的修改移动到其他分支:$git stash
  8. 查看stash的内容:$git stash list
  9. 恢复stash中的内容但不删除其内容:$git stash apply stash@{0}
  10. 恢复stash中的内容同时把stash中的内容删除:$git stash pop
  • 搜索:
  1. 在当前目录中的所有文件中查找文本内容:$git grep "Hello"
  2. 在某一版本中搜索文本:$git grep "Hello" v1.0
  • 提交历史:
  1. 从最新的提交开始,显示所有的提交记录(仅显示提交的hash和message):$git log --oneline,是–pretty=oneline --abbrev-commit 的简化用法。
  2. 显示完整的commit id:$git log --pretty=oneline
  3. 显示分支合并图:$git log --graph
  4. 显示SHA-1前几个字符,而非所有的40个字符:$git log --abbrev-commit
  5. 显示某个用户的提交:$git log --author="username"
  6. 显示某个文件的所以修改:$git log -p <file>
  7. 查看命令历史:$git reflog
  8. 查看谁在什么时间修改了文件的内容:$git blame <file>
  • 分支与标签:
  1. 列出所有分支:$git branch
  2. 基于当前分支创建新分支:$git branch <new-branch>
  3. 删除本地分支:$git branch -d <branch>
  4. 查看本地分支和远程分支的关系:$git branch -vv
  5. 将本地分支追踪远程分支:$git branch --set-upstream branch-name origin/branch-name
  6. 设置当前分支跟踪远程分支:$git branch -u origin/branch-name
  7. 基于远程分支创建新的可追踪分支:$git branch --track <new-branch> <remote-branch>,与NO.10类似。
  8. 切换分支:$git checkout <branch-name>
  9. 创建并切换到新分支:$git checkout -b <branch-name>
  10. 在远程分支的基础上建立dev分支,并且让dev分支追踪origin/dev远程分支:$git checkout -b dev origin/dev,与No.7类似
  11. 在当前分支打标签,默认是HEAD:$git tag <tag-name>
  12. 查看所有标签:$git tag
  13. 对某次commit打标签:$git tag <tag-name> <commit-id>
  14. 查看标签信息:$git show <tag-name>
  15. 创建带有说明的标签:$git tag -a <tag-name> -m "message" <commit-id>
  16. 删除一个本地标签:$git tag -d <tag-name>
  17. 删除一个远程标签:$git push origin :refs/tags/<tag-name>
  18. 推送一个本地标签:$git push origin <tag-name>
  19. 推送全部未推送过的本地标签:$git push origin --tags
  • 更新与发布:
  1. 查看远程库信息:$git remote
  2. 列出当前可抓取和推送地址的远程端:$git remote -v
  3. 显示远程端信息:$git remote show <remote>
  4. 删除本地远程端:$git remote rm <remote>
  5. 添加新的远程端:$git remote add <remote> <url>
  6. 下载远程端版本,但并不合并到HEAD中:$git fetch <remote>
  7. 下载远程端版本,并自动与HEAD版本合并:$git remote pull <remote> <url>
  8. 将远程端版本合并到本地版本中:$git pull origin master
  9. 推送分支到到远程端:$git push <remote> <branch>
  10. 删除远程端分支:$git push remote --delete <branch>
  • 合并和重置:
  1. 将分支合并到当前HEAD中:$git merge <branch>
  2. 将本地未push的分叉提交历史整理出直线:$git rebase
  3. 退出重置:$git rebase --abort
  • 撤销:
  1. 放弃工作目录中所有修改:$git reset --hard HAED
  2. 移除缓存区的所有文件(撤销上次的git add):$git reset HEAD
  3. 放弃某个文件的所以本地修改:$git checkout HEAD <file>
  4. 重置一个提交(本地修改的内容也会被重置):$git revert <commit-id>
  5. 将HEAD重置到指定的版本,并抛弃该版本之后的所有修改:$git reset --hard <commit-id>
  6. 将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改:$git reset <commit-id>
  7. 将HEAD重置到上一次提交的版本,并保留未提交的本地修改:$git reset --keep <commit>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

King_960725

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值