Github 学习总结
概念理解
Repository
顾名思义仓库,一个项目就是一个仓库,在GitHub上面也能通过全局搜索搜到一堆有趣的仓库
init
在创建GitHub仓库的时候有个 Initial
的选项,就是生成一个空仓库,然后将你的Description
生成为一个readme.md
的文件
工作区
我们修改代码这些的文件,也可以理解成现有的文件,都是我们正常工作时修改用到的,属于工作区
暂存区(缓存区)
在我们修改完文件之后,使用git add
命令提交到的区域就是缓存区,缓存区里面就是可以添加可以减少的一堆文件,不再修改之后使用git commit
将文件都整合一下,提交到版本库里面
版本库
我们的每一次整合好了的修改就是一次commit
,commit弄完之后,我们就用git push
将我们在本地上的改动部署到远程仓库中
分支(branch)
一个项目,不同的开发者可对应不同的版本,比如dev版,发行版,内测版等等,这些不同的版本就是一个个的分支(针对开发人员来说)
标签(tag)
和传统的标签意义不同,相当于发行给大众的版本号,生成一个标签命令执行后,会根据当前版本,把所有的代码打包成zip/tar.gz
的格式统一发布出去
命令使用
git clone (-o 自定义主机名) + [仓库http地址]
+(本地仓库名)进入仓库的HTTP网址,在本地将这个仓库里面的文件全部下载到本地磁盘里面,本地会生成一个同名文件夹,里面会有一个名为.git
的隐藏文件夹,这个文件夹就是区分GitHub
仓库和普通文件夹的地方 默认主机名是origin
git init
将当前目录初始化成为一个本地git
仓库,不过没有指定到github
服务器上,所以需要自己去搭建服务器
echo 'text'
表示在屏幕上显示一串字符
echo 'text' > [文件名]
新建一个文件,内容是text
,名字是刚刚输入的名字
echo 'text' >> [文件名]
在该文件后面提行,添加该text
,如果没有文件就新建一个文件
git status
查看当前git
状态,后面会被简写定义成git st
git add [文件名]
将改变过的文件添加到待提交的暂存区,也可以使用git add .
来将所有改动过的文件一并提交到暂存区
git reset --[文件名]
撤销刚才提交到暂存区的文件,或者是使用 git rm --cached [文件名]
从缓存区中删去该文件(翻译问题,暂存区->缓存区)
git diff --cached
查看暂存区中的所有的文件修改情况
git commit (-m ['your commit in here'])
用于将暂存区的修改,整合成为一次commit
,一个新的整体改动
git log (--reverse逆序排列)
显示Git的版本区提交的历史记录
git branch -avv
查看全部分支信息,到后面会用git br
来代替
git reset --soft HEAD^
撤销最近的一次提交,将修改从版本区还原到暂存区,撤销两次就是git reset --soft HEAD^^
,多次就是git reset --soft HEAD~n
git reflog
用于记录本地仓库的每一次版本变化
git reset --hard [版本号]
或者是 git reset --hard HEAD@{n}
来回到第n次提交版本之前
git push (-f 强制提交)
用于将此次版本整合成为一个commit
提交
git config --global alias.[别名] [原命令]
用于设置命令别名,如git config --global alias.st status
和 git config --global alias.br 'branch -avv'
设置好了之后就可以使用git config -l
来查看自己定义的命令别名
git fetch
将远程仓库中的分支信息拉取到本地,之后可以使用git rebase origin/master
来根据信息来拉去分支文件,也可以使用git pull
直接拉取远程仓库中的文件
git branch [分支名]
创建新的分支,创建好了之后使用git checkout [分支名]
来切换到新分支,默认主要分支是master
,这个git checkout
命令常用,别名设置为git ch
;也可以使用git checkout -b [分支名]
直接创建分支一步到位
git push [主机名] [本地分支名]:[远程分支名]
推送本地分支到远程仓库中,如果本地和远程分支名相同就可以省略:[远程分支名]
,如git push origin dev1
如果远程分支不存在就自动创建。
git branch -u [主机名] [本地分支名]
将本地分支与远程分支关联起来 如git branch -u origin/dev1
而使用git push -u [主机名] [分支名]
就可以在上传的时候自动跟踪
git push [主机名] --delete [远程分支名]
删除远程分支,还有一个相同功能的命令,不过与前文极为相似,为避免混淆不计。git branch -D [分支名]
删除本地分支,git branch -m [原分支名] [新分支名]
分支改名
git tag [标签名] -m [备注信息] [版本号]
创建标签,其中版本号可以省略,备注信息建议添加。git show [标签名]
查看标签详细信息。git tag -d [标签名]
删除本地标签。git push [主机名] [标签名]
推送标签,或者是使用git push [主机名] --tags
推送所有标签。git push origin :refs/tags/[标签名]
删除远程仓库中的标签