git仓库使用
1、git命令参数
usage: git [--version] [--help] [-c name=value] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p|--paginate|--no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>] 最常用的 git 命令有: add 添加文件内容至索引 bisect 通过二分查找定位引入 bug 的变更 branch 列出、创建或删除分支 checkout 检出一个分支或路径到工作区 clone 克隆一个版本库到一个新目录 commit 记录变更到版本库 diff 显示提交之间、提交和工作区之间等的差异 fetch 从另外一个版本库下载对象和引用 grep 输出和模式匹配的行 init 创建一个空的 Git 版本库或重新初始化一个已存在的版本库 log 显示提交日志 merge 合并两个或更多开发历史 mv 移动或重命名一个文件、目录或符号链接 pull 获取并合并另外的版本库或一个本地分支 push 更新远程引用和相关的对象 rebase 本地提交转移至更新后的上游分支中 reset 重置当前HEAD到指定状态 rm 从工作区和索引中删除文件 show 显示各种类型的对象 status 显示工作区状态 tag 创建、列出、删除或校验一个GPG签名的 tag 对象 命令 'git help -a' 和 'git help -g' 显示可用的子命令和一些指南。参见 'git help <命令>' 或 'git help <指南>' 来查看给定的子命令帮助或指南
2、git使用方法
git中的结构组成包括:
工作区(working directory),它就是我们工作的目录区域
版本库(Repository),由版本控制创建的.git文件目录
git仓库中最重要的是index缓存区,在使用git add时它实际上是将文件改动添加到了仓库缓存区中,另一个文件为master它是git自动创建的唯一一个master分支,在使用git commit提交时实际上时将改动提交了主分支上master,还有一个HEAD指针,它直接指向master中的最新版本,版本切换就是调用了HEAD指针指向要切换的版本
(1)创建版本库
#配置个人信息
git config --global user.name "username"
git config --global user.email "youremail@163.com"
#创建版本库
mkdir learngit
cd learngit
git init
(2)提交到仓库
git add test.py #将文件提交到索引index
-n #只显示文件不添加文件
-v #显示详细
-f #强制添加被忽略的文件
-i #在树结构中添加修改文件内容
git commit -m 'add test' #提交到仓库
(3)查看工作区状态
git status
#查看修改的内容
git diff test.py
git diff HEAD -- test.py
#查看提交历史
git log
git log --pretty=oneline #简短输出信息
git log --graph --pretty=oneline --abbrev-commit #查看分支合并情况
#退回到上一个版本
git reset --hard HEAD^
#前进到下一个版本
git reflog #查看历史命令,找到commit_id
git reset --hard 3b13954 #通过ID前进到下一个版本
#撤销修改
#当文件只是在工作区修改了,要撤销修改使用一下命令
git checkout -- test.py
#当文件修改提交到缓存区后,想要撤销修改需要先从缓存区丢弃修改然后再在工作区撤销即可
git reset HEAD test.py
git checkout -- test.py
#当文件修改被提交到版本库后,想要撤销修改就需要使用版本回退了
git reset --hard HEAD^
#删除文件
#如果文件被删除了需要在版本中将文件删除
rm test.txt
git rm test.txt
git commit -m 'remove test.txt'
#如果文件是被误删的,可以使用以下命令恢复或者退回到上一个版本
git checkout -- text.txt #如果文件还在版本库中使用此命令
git reset --hard HEAD^ #如果文件被彻底删除了可以回退到上要给版本
(4)远程仓库
#1.要添加到远程仓库首先需要注册一个github账号
#2.在本地创建SSH key执行以下命令,一路回车即可,它会在用户目录下生成一个.ssh文件夹,里面创建了两个文件id_rsa为私钥文件自己使用的,一个是id_rsa.pub为公钥文件,需要上传到github网站上
ssh-keygen.exe -t rsa -C "920664709@163.com"
#3.登陆github账号,选择设置,在设置中找到SSH keys然后点击add SSH Key添加公钥,随便写个标题,将我们创建的公钥内容粘贴进来,保存即可
#4.关联远程库
#在命令行创建新的存储库
echo "#spider-test" >> README.md
git init
git add README.md
git commit -m "first commit"
#关联远程存储库
git remote add origin git@github.com:Qithird/Spider-12306.git
#查看远程仓库的名字,-v显示详细
git remote -v
#5.推送分支的所有内容
git push -u origin master
#6.推送更新
git push origin master
#7.克隆远程仓库
git clone git@github.com:Qithird/Spider-12306.git
(5)分支管理
#每次提交git会将修改提交到master分支上,HEAD指针指向master,而当我们创建新分支后HEAD则指向新分支,表示当前分支
#查看分支
git branch
#创建分支
git branch <name>
#切换分支
git checkout <name>
#创建+切换分支
git checkout -b <name>
#合并某分支到当前分支
git merge <name>
#删除分支
git branch -d <name>
#查看分支合并图
git log --graph
#开发中不要在master分支上开发,而是在dev分支上,在合并分支是加上--no-ff参数可以用普通模式合并,合并后历史记录有分支信息
#暂时存储分支,如在工作中接到临时任务需要处理,而当前的分支任务没完成无法提交时,可以使用stash功能来将当前工作现场储藏起来,等完成后再恢复现在即可
git stash #储藏现场分支
git stash list #查看stash
git stash pop #恢复现场并删除stash
git stash apply #只恢复现在不删除stash,继续可以上面的命令删除stash
#删除一个没有被合并过的分支使用-D强行删除
git branch -D <name>
#推送分支
git push origin branch-name
#抓取远程的新提交
git pull
#建立本地分支与远程分支的关联
git branch --set-upstream branch-name origin/branch-name
#windows系统下命令行报错:
warning: LF will be replaced by CRLF in readme.txt.
The file will have its original line endings in your working directory.
#解决方法:
rm -rf .git
git config --global core.autocrlf false