一.git简单操作
4个地方:
工作区: 当前编辑的区域
缓存区: add 之后的区域
本地仓库: commit之后的区域
远程仓库 :远程的区域
简单操作:
git init 初始化操作 比如我选定了一个文件,我输入了git init ,当前这个文件就是归git管理了
git status 查看git的状态
git add 将文件放到缓存区
git commit -m '操作信息,这里尽量写的详细一点,防止往后看了不知道这一步是干啥的' 将缓存的内容提交到本地仓库
git config --global user.name '' 设置用户的用户名
git config --global user.email '' 设置用户的邮箱
git config --global --unset user.email '' 删除用户的邮箱
git config --global --unset user.name '' 删除用户的用户名
git log 查看当前版本之前提交的记录
git reflog 查看所有提交记录
git reset --hard 'hash值' 回退到之前某次提交的地方 慎用(如果删除之后不能回退)
git checkout filename 将指定文件回退到最近一次commit的地方,只对工作区域修改,缓存区不变
git reset HEAD filename 将指定文件从缓存区拉取到工作区,不会覆盖原来的数据
git diff 对比缓存区和工作区的区别
git diff --cached 对比缓存区和本地仓库的区别
两个远程仓库的网站
github , 码云
注意这里遇到的错误:
因为线上版本跟本地版本库不一致,本地版本比线上新
` ! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/417685417/cw.git'
解决办法:
git pull origin master --allow-unrelated-histories #强制拉取
冲突 : 同时修改了一个文件的同一个位置,冲突自己解决
`Auto-merging templates/index.html
CONFLICT (content): Merge conflict in templates/index.html
Automatic merge failed; fix conflicts and then commit the result.
因为没权限
`Logon failed, use ctrl+c to cancel basic credential prompt.
remote: Permission to 417685417/cw.git denied to WuPeiqi.
fatal: unable to access 'https://github.com/417685417/cw.git/': The requested URL returned error: 403
git remote add origin +地址 添加别名 将本地的东西放到网站上
git clone +地址 将网站上的东西clone(下载)下来
clone指定分支:git clone -b 指定分支名 +地址
git push origin master 将本地的文件上传到远程仓库
git push -f # 强制提交
git pull origin master 将远程仓库的文件拉取到本地
快照
git stash 创建一个快照
git stash pop 取出快照并删除快照记录
git stash list 查看快照记录
git stash drop name 删除快照
git stash apply name 取出快照
git 分支
git branch #查看当前分支
git branch 分支名 #创建分支
git checkout 分支名 #切换到分支
git checkout -b 分支名 #创建并切换到分支
git merge (master)分支名 #合并当前所在分支和git的那个分支(master)
git branch -d 分支名 #删除分支
git branch dev origin/dev #创建dev分支并以线上的为蓝本
git branch -b dev origin/dev #创建并以线上分支为蓝本并切换到dev下
git tag 创建标签(跟上线内容的版本有关)
git tag #查看tag
git tag -a tagv(版本号) -m '信息' #以当前的位置创建
git tag -a tagv(版本号) -m '信息' hash值 # 以某次提交为蓝本创建
git tag -d tagv(版本号) #删除tag
git push origin :refs/tags/tagv(版本号) #删除远程仓库中的tag(版本)
git push origin --tags #上传所有的tag(所有的版本都推上去)
git pull #下载(将远程仓库的内容拉取下来)
git 忽略文件
解释 : 比如我写了一个文件,但是我不想把这个文件上传到远程仓库中
1.创建一个隐藏文件,名为.gitignore
vim .gitignore
2.在这个隐藏文件中写上你要忽略上传文件的名字即可
3.然后 git add . 和 git commit -m '信息' 就行了
此时就将.gitignore文件上传上去了
上传上去也能下载下来,
如果在.gitignore中写了/ ,代表从这往下所有的都不会被忽略了
变基(rebase): 强行合并到一条直线上