git分为3个区
1、工作区 当前文件夹中的文件内容
2、暂存区 通过git add fileName添加到暂存区
3、本地库 通过git commit fileName 添加到本地库
git init 初始化git仓库(把一个普通的文件夹变得让git可以管理)
设置签名
git config [--global] user.name root123
git config [--gloabl] user.email xxx.com@xx.com
加--global表示全局签名 不加表示是项目级别的签名 优先级: 项目签名 > 全局签名
git add 1.txt 把1.txt放入暂存区
git rm --cached .\1.txt 把该文件从暂存区撤销
git commit 1.txt 提交到本地区
git add fileName 从工作区提交到缓存区
git commit fileName 从缓存区提交到本地区
红色表示只有工作区有这个文件,暂存区和本地库没有文件
绿色表示文件被提交到暂存区即只有工作区和暂存区有,本地库没有这个文件
git log 查看历史记录 index->指向某个历史版本
git log --pretty=oneline 每个版本显示一行
git log --oneline 显示一部分的commitId
git reflog 查看回溯版本历史
历史记录回溯
git reflog 查看所有的历史版本
git reset --hard indexs(部分hash值)
如果向回到最初的 git reset --hard HEAD
--soft
移动本地库的指针
--mixed
移动本地库的指针
移动暂存区的指针
--hard
移动本地库的指针
移动暂存区的指针
移动工作区的指针
文件差异比较
git diff fileName 工作区中的文件和暂存区的文件比较
git diff HEAD fileName 工作区中的文件和本地库的文件比较
git checkout --fileName 回到最近一次add或者commit的状态
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态
删除文件和恢复文件
比如当前工作区有1.txt 和A.java两个文件切都提交了本地仓库
要删除本地仓库的1.txt
rm -f 1.txt
git add .
git commit -m "del 1.txt" .
要找回被删除的1.txt文件
git log --oneline (找到上一次的commitId)
git reset --hard lastCommitId
分支
分支就是多个路径共同开发
当某个分支开发完成后合并到主分支 如果某个分支开发失败了,那么就删除这个分支,主分支不会受到影响
分支操作
查看分支 git branch -v
新建分支 git branch 分支名
切换分支 git checkout 分支名
合并分支 git merge 有新内容的分支名
解决合并冲突问题
自动合并冲突时,启用手动合并,把文件修改到理想的状态后手动提交后再次合并 merge
git 远程仓库
查看远程仓库 git remote -v
给远程仓库(https://.....)起个别名叫origin git remote add origin https://.....
执行推送: git push origin master 把当前分支推送到origin的master分支上
1、先拉取
git pull origin master --allow-unrelated-histories
2、在推送到远程仓库 git push origin master