新项目开始-工作区、暂存区、版本库
注:工作区包括已提交后控制的文件和正在修改的文件两部分,暂存区是add之后,版本库是commit之后。
1、进入项目后进行初始化,也在工作区
git init
2、查看文件状态
git status
3、文件提交到暂存区
git add . // 管理所有已修改过的文件,可指定文件名提交。
git add * // 同git add .
4、从暂存区回退到工作区
git reset . // 回退所有,可指定文件
5、配置个人信息
git config --global user.emai "xxx@xxx.com"
git config --global user.name "xxx"
6、生成版本,存到版本库
git commit -m "v0.1" // v0.1表示描述信息
回退版本
1、回退到之前的版本:直接从版本库回退到工作区(未修改时候)
git log // 只能查到之前老的版本
git reset --hard 版本号
或者:
-
HEAD~0 表示当前版本 // HEAD
-
HEAD~1 上一个版本 // ^
-
HEAD~2 上上一个版本 // ^^
-
HEAD~3 上上上一个版本 // ^^^
-
......
2、回退到之后的版本
git reflog // 也能查看到之后的版本
git reset --hard 版本号
3、从版本库回退到暂存区
git reset --soft 版本号
4、从暂存区回退到修改状态
git reset HEAD 文件名 // 不加文件名代表所有,和git reset .相同
5、从版本库回退到修改状态
git reset --mix 版本号
6、从已修改回退到未修改
git checkout -- 文件名
7、reset 的本质:移动 HEAD 以及它所指向的 branch
分支
1、查看当前分支
git branch
2、创建新分支
git branch 分支名
3、切换分支
git checkout 分支名
4、合并分支到当前分支
git merge 需要合并的分支
5、删除分支
git branch -d 分支名
git branch -D 分支名 // -D表示--delete --force
Github仓库
1、创建方式
(1)直接在git网页创建,然后clone下来。
或者执行git remote add origin https://github.com/xxx
(2)本地创建后提交
git init
git add README.md
git commit -m"first"
git remote add origin https://github.com/xxx
git push -u origin main
2、从github复制项目
git clone https://github.com/xxx
3、从github更新项目。fetch方式。不推荐,一般用pull自动合并
git fetch origin 分支名
git merge origin/分支名
4、从github更新项目。pull方式,
git pull https://github.com/xxx
Rebase(变基)
1、通俗理解为,基于xxx的基础。把中间的多个commit提交记录整合为一个记录。尽量避免把线上(已push的)commit记录合并,一把只合并本地记录。不然需要处理冲突比较麻烦,也不清晰。
2、把现在一起合并到指定的commitID记录
git rebase -i commitID
3、当前记录往前总共3个记录合并
或者git rebase -i HEAD~3
4、操作提交id前面的pick字段,根据Commands修改,必须保留一个pick,再修改log,wq保存退出即可。
eg:改为s,# s, squash <commit> = use commit, but meld into previous commit.
5、重新进行rebase
git rebase --abort