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} |