背景:
大学期间做的几个项目中,都用到了git,我这个忘性大的boy,就直接把一些简单的常用命令,记在了onenote的笔记中(虽然网上很多,但是自己的用着最顺心,哈哈)。要用的时候给翻一翻。
这不,刚想用心经营下博客,所以将之搬到了博客上。
你没在这儿找到想用的?呃,那关我鸡毛蒜皮事儿。。。。
git简介一手
Git是一个开源的分布式版本控制系统,当初第一次上手的时候,还觉得它挺难的,后面发现真不错哎,管理代码轻松好多。但用了挺久以后查了一查,才发现搞出git的居然也是林纳斯(Linus Benedic Torvalds,Linux之父)。
呃,扯远了。聊回正题。还是按照正常套路,先来大致看下git的原理。这里在网上抓了一张图:
再来比较下SVN和GIT优缺点,小本本记下。
SVN与Git优缺点比较(属面试常问提)
SVN与GIT的区别(总结)
个人常用命令
- 简单的全局配置信息
#设置git的全局用户名和邮箱
git config --global user.name "username"
#设置git的全局邮箱
git config --global user.email "email"
#查看git配置
git config --list
#编辑Git配置文件,这里按提示打开时使用默认的vi编辑器
git config -e [--global]
- 新建代码仓库,连接远程仓库
#当前目录新建代码仓库
git init
#指定目录作为git仓库
git init [dir]
#克隆仓库,repo为远程仓库,dir为本地仓库(dir可省略)
git clone [repo] [dir]
#查看已存在的远程分支,-v参数列出详细信息
git remote -v
#连接远程仓库
git remote add origin [地址]
#删除远程仓库origin
git remote rm origin
- git基本快照
#查看项目的当前状态,-s以简短结果输出
git status -s
使用 git add命令将想要快照的内容写入缓存区
#添加指定目录到暂存区,包括子目录
git add [dir]
#添加当前目录的所有文件到暂存区
git add .
使用git commit 将缓存区内容添加到仓库中
由于git每次提交都要记录同户名和邮箱需要设置全局用户名和邮箱
#写入仓库
git commit -m '描述信息'
#将git add操作和git commit操作合并,但只能用于提交跟踪过的文件,新建文件不能使用
git commit -am '描述信息'
#更改未提交的描述信息
git commit --amend -m "这才是要提交的文字"
#显示已写入缓存与已修改但尚未写入缓存的改动的区别(不常用)
git diff
#查看已缓存的改动(不常用)
git diff --cached
#取消已缓存的内容
git reset HEAD
#从 Git 中移除某个文件,强制删除选项 -f,用于删除之前修改过并且已经放到暂存区域的文件
git rm [file] -f
#把文件从暂存区域移除,但仍然希望其保留在当前工作目录中
git rm --cached [file]
#递归删除
git rm –r [文件夹名]
- 分支管理
这里当初初学时,菜鸟教程中一个简单的分支管理以及合并冲突demo:[分支管理demo](https://www.runoob.com/git/git-branch.html)
#创建Git分支
git branch (branchname)
#切换分支,-b参数以后,是指新建分支并快速切换过去——[checkout检出进阶](https://www.yiibai.com/git/git_checkout.html)
git checkout -b (branchname)
#合并分支
git merge
#列出所有分支,-r参数列出远程所有分支,-a列出所有本地分支和远程分支
git branch
#删除分支
git branch -d (branchname)
- 简单的日志查询和标签
#日志详细信息,--oneline参数是指简洁的日志记录,--reverse是指逆序显示日志
git log --oneline --reverse
#查询指定的用户提交日志
git log --author=[username] --oneline
#查询所有标签
git tag
#查询某个标签
git show v1.0
#给当前commit提交新建标签,-a参数创建一个带注解的标签,不带时日志则不会记录详细信息
git tag -a v1.0 -m "version 1.0"
#给指定commit提交新建标签
git tag -a v2.0(这是标签内容,版本信息) [commit]
#上传标签到服务器
git push origin v1.0
#删除本地标签
git tag -d v1.0
#删除远程标签
git push origin --delete v1.0
- 推送和更新代码库
#推送本地仓库相应分支到远程仓库,-u参数指设定默认主机,以后就可以只用git push推送了
git push -u origin master
#推送所以分支到远程仓库
git push [remote] --all
#删除远程master分支
git push origin --delete master
#强制推送,覆盖远程的master分支(有句话说:“除非一个人使用,否则push --force就是找死”)
git push origin master --force
#更新本地代码库master分支
git pull origin master
#更新本地时,把两段不相干的分支进行强行合并
git pull origin master --allow-unrelated-histories
笔者废话
就这些了,毕竟笔者也只是只菜鸟。以后用到了再来补充。
笔者以为,将小本本上的笔记扔到博客上来,应该会挺简单的。没想到调个格式都花了我好几个小时。
最后,分享个一个简单有意思的网站:HelloGitHub
其意义在于:分享 GitHub 上有趣、入门级的开源项目。
对新手入门GitHub的玩家十分友好。
比如我!就是在GitHub上瞎逛。
注:
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名,转载请标明出处。