**史上最全的GIT常用场景命令都在这里啦!** ***有未想到的地方欢迎补充***
git的操作命令
git log //查看提交历史记录,从最近到最远,可以看到3次
git log --pretty=oneline //加参,简洁查看
git reflog //查看每一次修改历史
cat test.txt //查看文件内容
git status //查看工作区中文件当前状态
git reset --hard HEAD^(HEAD~100)(commit id) //回退版本
git checkout – test.txt //丢弃工作区的修改,即撤销修改
git reset HEAD test.txt //丢弃暂存区的修改(若已提交,则回退)
git fetch //Git fetch会将数据拉取到本地仓库 - 它并不会自动合并或修改当前的工作。
git pull //git pull是从远程获取最新版本并merge到本地,会自动合并或修改当前的工作。
git操作的几种应用场景
场景1:本地代码修改文件,需要提交MR到远端
git pull origin master
git checkout mybranch_1
git add .
git commit -m " log说明 "
git push --set-upstream origin mybranch_1
场景2:在分支mybrach_1进行工作,同事新建了一个分支test_1,需要你共同协作
①不想把本地提交commit
git stash
②想提交commit
git add .
git commit -m " "
git fetch origin test_1
git checkout test_1
帮助完,需要回到你自己的工作
git checkout mybranch_1
git stash pop
场景3:在分支mybranch_1进行工作,需要对部分文件进行修改,但此时你得知同事在他的分支test_1已经完成了这一些修改,但还未上库,并提交至节点commit_1(id:9999),你需要他的修改的git操作命令
git checkout -b mybranch_1
git cherry-pick 9999
(命令解读:用于从一个仓库的某个提交中提取出一个或多个文件,并将这些文件添加到另一个仓库中。9999是一个提交的ID,表示要从这个提交中提取出文件)
场景4:你在mybranch_1进行工作,修改了文件file_a,file_b,file_c,包含了3个节点(commit_1/commit_2/commit_3),并提交了MR,一段时间后,同事也修改file_b/file_c,并且上库,修改产生重合,MR遇到冲突,需要解决
git reset --soft HEAD~3
git commit -m " combine commit "
git pull origin master --rebase
场景5:在mybranch_1进行工作,修改了5个文件,并已提交节点commit_1(id:8888),此时你认为不需要file_a的修改只保留其余4个文件的修改,假设mybranch_1基于节点6666
git checkout 6666 file_a
git reset
git checkout –
git commit -m " changes without file_a "
合并节点
git push --force
场景6:在mybranch_1进行工作,做了一些修改,提交一次commit–commit_1,但是没有推送到远端,此时因为一些不明原因,你将节点回退到commit_1之前,并且强推到远端,此时git log已看不到commit_1,你的修改是否丢失了?
git reflog
git reset --hard(commit-id)