> CentOS > CentOS教程 >

阿里云CentOS7中安装使用Git和GitHub

1.Git的安装

查看Git是否安装:git

YUM安装Git:yum install git

查看Git版本:git --version

配置全局信息(注意空格):

git config --global user.name '随便输入名字'

git config --global user.email '随便输入邮件地址'

git config --global color.ui true

Note:git config命令的--global参数表示当前这台机器上所有的Git仓库都会使用这个配置(也可针对不同的仓库设置不同的配置),--global是针对当前用户起作用的,如果不加则只针对当前的仓库起作用

 

2.Git库的操作

根目录下创建Git版本库:mkdir gitrepos

设置成为Git可以管理的仓库:git init

Note:.git(ls -ah)隐藏目录是Git用来跟踪管理版本库的,每个仓库的Git配置文件都放在.git/config文件中,当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中

 

创建并保存测试文件:vim readme.txt

添加文件到仓库(可多个):git add (-f强制添加) readme.txt

提交文件到仓库并注释:git commit -mm "输入备注信息即可"

查看仓库的当前状态:git status

查看仓库的修改内容:git diff readme.txt

Note:git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别

 

查看历史记录:git log [-1表示last](--pretty=oneline)

Note:commit edf09fad36432c5aa3b487d0a8b96a78ac62ff8d

 

版本的回退:git reset --hard HEAD^

Note:HEAD表示当前版本,上个版本是HEAD^,上上个则是HEAD^^(HEAD~2)

 

回退到指定的版本:git reset --hard edf09f(commit id:Git可进行模糊查询)

Note:git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区

 

Git命令的记录:git reflog

放弃修改:git checkout -- readme.txt

Note:没有--就会变成“切换到另一个分支”的命令

 

删除文件:git rm readme.txt

创建标签:git tag "标签名称"(默认为HEAD,也可指定commit id)

查看标签:git tag

查看标签信息:git show "标签名称"

git tag -a "标签名称" -m "comments" "commit id",-a表示指定标签名

git tag -s "标签名称" -m "comments" "XXXXXX",-s表示用私钥签名一个标签

删除标签:git tag -d "标签名称"

推送标签到远程:git push "远程库名字" "标签名称"

全部标签推送到远程:git push "远程库名字" --tags

远程库标签删除:git push "远程库名字" :refs/tags/"标签名称"(需要本地删除)

忽略配置文件:.gitignore

(a)忽略操作系统自动生成的文件,比如缩略图等

(b)忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件

(c)忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件

检查忽略:git check-ignore -v "文件"

别名配置:git config --global alias.st status ===>>>(git status==git st)

删除别名:删除.git/config文件中对应的别名行的数据即可,配置别名也可以直接修改.gitconfig,如果修改错误则可以删掉文件重新通过命令配置

 

3.GitHub的设置

注册GitHub:https://github.com/

创建SSH key:ssh-keygen -t rsa -C "随便输入邮件地址"

Note:在根目录下如果可以看到:.ssh目录以及里面的id_rsa和id_rsa.pub两个文件则表示成功创建

 

登陆GitHub后设置SSH Key,把id_rsa.pub文件的内容粘贴上去即可,然后在GitHub上创建仓库:spring-boot-learning

Git与GitHub相连,在gitrepos中执行:git remote add "远程库名字" https://github.com/GitHub拥有者/GitHub仓库名

推送master分支到GitHub:git push -u "远程库名字" master

Note:首次提交才需要加:-u

 

从GitHub克隆:git clone https://github.com/GitHub拥有者/GitHub仓库名

查看远程库信息:git remote (-v显示详细信息)

删除远程库:git remote remove "远程库名称"

试图合并:git pull

本地创建和远程分支对应的分支:git checkout -b branch-name "远程库名字"/branch-name

建立本地分支和远程分支的关联:git branch --set-upstream branch-name "远程库名字"/branch-name

 

4.Git分支管理

分支dev创建与切换:git checkout -b dev(Fast forward)

Note:-b参数表示创建并切换,相当于git branch dev和git checkout dev

 

分支查看:git branch(当前分支前面会标一个*号)

分支合并:git merge dev

Note:git merge --no-ff -m "merge with no-ff" dev表示禁用Fast forward,加上--no-ff参数可以用普通模式合并且合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

 

分支的删除:git branch -d dev(-D表示强行删除)

查看分支合并情况:git log --graph --pretty=oneline --abbrev-commit

存储工作现场:git stash

查看工作现场:git stash list

恢复工作现场:

git stash apply恢复:但是恢复后stash内容并不删除,需要用git stash drop来删除

git stash pop恢复:恢复的同时把stash内容也删除

恢复指定的stash:git stash apply stash@{0}

 

(责任编辑:IT)