提醒
分为工作区,暂存区,仓库。一步步保存。
基本命令
cat 文件名 //查看文件内容
rm 文件名 //删除文件
cd 文件夹 //打开文件夹
ls //列出文件夹下的目录
初始配置
git config --global user.name "your name"
git config --global user.email "email@example.com"
新建存储库
git init \\把当前目录设为存储库
git add 文件名 \\添加单个文件,或空格分割多个文件
git add * 或者git add . //添加所有目录下文件到暂存区
git commit -m "修改说明" 将暂存区文件添加到仓库
可以同时添加好几个文件,之后使用一次commit全部上交
查看状态
git status //查看状态
git diff //查看工作区更改详情
git diff HEAD -- 文件名 //查看该文件仓库与工作区的区别
再add 文件,commit -m存仓库
版本回退
对于仓库
git log //查看提交的历史,注意版本号
git reset --hard HEAD^ //回到上个版本,HEAD^^表示上上个,HEAD~100往上100个版本
git reset --hard 版本号 //用来回到该旧版本之后的新版本,版本号一般前五位就行
git reflog //查看命令历史,便于找版本号
对于暂存区
git reset HEAD 文件名 //将提交到暂存区的文件恢复为暂存区该文件的上个版本,工作区不改变,status之后显示该文件没提交到暂存区
对于工作区
git checkout -- 文件名 //将工作区文件恢复为暂存区文件版本(丢弃工作区的更改)
git checkout . //工作区所有更改都回退
配置GITHUB远程库
ssh-keygen -t "邮箱" //用户目录下建立本地ssh文件夹,一路回车产生私钥和公钥
GITHUB设置里添加SSH KEY
把公钥内容复制过去
(一个电脑只用配对一次)
添加本地仓库到远程
网页有提示,用
git remote add origin git....//这儿部分可以直接从网页复制,origin是远程库一般命名。代码作用:链接本地仓库到网络端
git push -u origin master //推送本地已有内容到服务器,-u:产生永久连接,方便以后push。
git push origin master //将本地仓库master分支推送到远程
第一次推送会有警告,正常。
当上传时候云端与本地有文件不同时候
git pull --allow-unrelated-histories
添加远程到本地
git clone 地址(ssh地址)
一定注意,该操作后直接下载文件并创建仓库到命令窗所在文件夹,位置要选好。
分支
git checkout -b 分支名 //创建并切换到新分支
-b作用:
git branch 分支名 //创建分支
git checkout 分支名
git checkout 分支名 //切换到分支
git branch //查看各个分支
git merge 分支名 //合并指定分支到目前所在分支
git branch -d 分支名 //删除本地分支
git push origin --delete 分支名//删除远程分支
合并产生冲突时
调用完merge命令后,产生冲突的话系统会提示,需要自己修改文件再提交
git log --graph //查看分支合并图
合并过程添加备注
默认情况是快速合并(fast forward)
要添加备注用
git merge --no-ff -m "备注信息" 分支名
出现BUG需要调试时
工作分支下:
git stash //暂存分支,使能跳转到其他分支
git stash pop//释放暂存,继续修改。删除暂存记录(文件还保留在暂存时刻(更好)
git stash apply//不删除暂存时刻记录
git stash list //查看暂存记录
多人协作模式
git remote -v //查看服务器库信息
git push origin 分支名 //上传特定分支,云端没有自动创建,如果创建失败,则是别人更改,用git pull拉取
标签
git tag 标签名 //添加标签(将该分支的最新仓库区添加)
git tag 标签名 操作ID //将历史步骤添加标签
git tag -a 版本名 -m "版本描述" 操作ID
git tag -m "备注" 标签名 //给标签添加描述
git tag //查看各个标签
git show 标签名 //查看标签内容
git push origin 标签名 //推送标签到远程
git push origin --tags //推送所有标签到远程
git tag -d 标签名//本地删除标签
git push origin :refs/tags/标签名 //服务器删除标签
ignore
- 作用:忽略文件或者文件夹
Q:文件已经上传,忽略跟踪
A:
git rm -r -n --cached 文件 //查看要删除的文件,但先不删除
git rm -r --cached 文件或文件夹//删除缓冲区的文件
git commit -m "" //合并,提交
git push