认识学习ubuntu 中 git 的使用

讲到 git 先谈谈 git 和 GitHub 的关系吧!

什么是 git ?

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

什么是 GitHub ?

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

git命令总结

创建:
在本地克隆一个已创建的仓库:`$git@gitee.com:Seul0725/learnNotes.git`
创建一个新的本地仓库:$git init

本地修改:
显示工作路径下已修改的文件:$git status
显示与上次提交版本文件的不同:$git diff <file>
把当前所以修改添加到下次提交中:$git add
把对某文件的修改添加到下次提交中(实现暂存文件的部分改动):$git add -p <file>
提交本地所以的修改:$git commit -a
附加消息提交:$git commit -m 'message here'
当前分支中未提交的修改移动到其他分支:$git stash
查看stash的内容:$git stash list
恢复stash中的内容但不删除其内容:$git stash apply stash@{0}
恢复stash中的内容同时把stash中的内容删除:$git stash pop

搜索:
在当前目录中的所有文件中查找文本内容:$git grep "Hello"
在某一版本中搜索文本:$git grep "Hello" v1.0

提交历史:
从最新的提交开始,显示所有的提交记录(仅显示提交的hash和message):$git log --oneline,是–pretty=oneline --abbrev-commit 的简化用法。
显示完整的commit id:$git log --pretty=oneline
显示分支合并图:$git log --graph
显示SHA-1前几个字符,而非所有的40个字符:$git log --abbrev-commit
显示某个用户的提交:$git log --author="username"
显示某个文件的所以修改:$git log -p <file>
查看命令历史:$git reflog
查看谁在什么时间修改了文件的内容:$git blame <file>

分支与标签:
列出所有分支:$git branch
基于当前分支创建新分支:$git branch <new-branch>
删除本地分支:$git branch -d <branch>
查看本地分支和远程分支的关系:$git branch -vv
将本地分支追踪远程分支:$git branch --set-upstream branch-name origin/branch-name
设置当前分支跟踪远程分支:$git branch -u origin/branch-name
基于远程分支创建新的可追踪分支:$git branch --track <new-branch> <remote-branch>,与NO.10类似。
切换分支:$git checkout <branch-name>
创建并切换到新分支:$git checkout -b <branch-name>
在远程分支的基础上建立dev分支,并且让dev分支追踪origin/dev远程分支:$git checkout -b dev origin/dev,与No.7类似
在当前分支打标签,默认是HEAD:$git tag <tag-name>
查看所有标签:$git tag
对某次commit打标签:$git tag <tag-name> <commit-id>
查看标签信息:$git show <tag-name>
创建带有说明的标签:$git tag -a <tag-name> -m "message" <commit-id>
删除一个本地标签:$git tag -d <tag-name>
删除一个远程标签:$git push origin :refs/tags/<tag-name>
推送一个本地标签:$git push origin <tag-name>
推送全部未推送过的本地标签:$git push origin --tags

更新与发布:
查看远程库信息:$git remote
列出当前可抓取和推送地址的远程端:$git remote -v
显示远程端信息:$git remote show <remote>
删除本地远程端:$git remote rm <remote>
添加新的远程端:$git remote add <remote> <url>
下载远程端版本,但并不合并到HEAD中:$git fetch <remote>
下载远程端版本,并自动与HEAD版本合并:$git remote pull <remote> <url>
将远程端版本合并到本地版本中:$git pull origin master
推送分支到到远程端:$git push <remote> <branch>
删除远程端分支:$git push remote --delete <branch>

合并和重置:
将分支合并到当前HEAD中:$git merge <branch>
将本地未push的分叉提交历史整理出直线:$git rebase
退出重置:$git rebase --abort

撤销:
放弃工作目录中所有修改:$git reset --hard HAED
移除缓存区的所有文件(撤销上次的git add):$git reset HEAD
放弃某个文件的所以本地修改:$git checkout HEAD <file>
重置一个提交(本地修改的内容也会被重置):$git revert <commit-id>
将HEAD重置到指定的版本,并抛弃该版本之后的所有修改:$git reset --hard <commit-id>
将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改:$git reset <commit-id>
将HEAD重置到上一次提交的版本,并保留未提交的本地修改:$git reset --keep <commit>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值