最常用:

// 克隆远程代码下来本地
-git clone xxxx
// 修改的代码细节展示
-git diff
// 当前分支状态(改动总览)
-git status
// 会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,
// 包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。(这个说法不正确,实验证明删除文件也是可以提交的)
// git版本在2.x之后应该是把 . 和 -A作用相同化了 而不是晚上复制的
-git add .
-git add -A
// 提交暂存区文件到本地仓库
-git commit -m "我的修改备注"
// 提交本地数据到 对应的远程分支
-git push
// 查看本地对应远程的分支对应关系
-git branch -vv
// 查看本地和远程所有分支
-git branch -a
// 以当前本地分支作为基础新建一个xxx分支(默认你这个xxx分支 也是push到 当前分支的远程分支)
-git checkout -b xxx
// 提交本地分支代码到 xxx远程分支
-git push origin xxx
// 将本地分支与远程xxx分支进行关联形成关联关系
-git branch --set-upstream-to=origin/xxx
// 拉取最新远程代码
-git pull
// 合并分支
-git merge xxxx
#这个是已经有的分支进行checkout
-git checkout xxxx
#修改的部分代码清理掉不修改了
-git checkout .
部分常用
-git branch -d xxx 删除分支(当前分支不能为xxx)
-git push origin --delete xxx(删除远程分支)
// 文件退出暂存区,但是修改保留:
-git reset --mixed
// 撤销所有的已经 add 的文件:
-git reset HEAD .
// 撤销某个文件或文件夹:
-git reset HEAD filename
// 撤销commit 之后返回成暂存区add状态
-git reset --soft HEAD^
// 撤销commit 直接新增代码全部撤销并没有add暂存直接消失
-git reset --hard HEAD^
解释:
HEAD^ 表示上一个版本,即上一次的commit,几个^代表几次提交,如果回滚两次就是HEAD^^。
--soft
不删除工作空间的改动代码 ,撤销commit,不撤销add
--hard
删除工作空间的改动代码,撤销commit且撤销add
git stash save "save tag" (贮藏已经修改的代码,如果写错分支了,没有提交 可以使用,之后切换到你需要的分支进行提取出来)
git stash list 查看贮藏的修改
git stash pop 释放贮藏内容到当前分支
// 多个贮藏 可以选择你需要拉取哪个贮藏
git stash pop stash@{$num}
git config --list 查看这个项目的git 配置
git remote prune origin xxx 这个是修剪掉已经删除远程分支的本地分支
git log 查看最近的提交信息
git reset --hard xxxxx回退到某一个历史节点
如果改动回到较远的一个节点 git push 可能会失败报错,因此我们需要强推到一个版本的话 需要:
-git push -f -u // -u 这里是为了持续推送到指定分支 这里意义不大
//下面两个命令参照这个网址 https://www.cnblogs.com/ellen-mylife/p/12794245.html
-git rebase xxx
-git rebase --continue

思考小练习(学长布置):

1、按github文档提示,生成ssh密钥对并为自己的github账号添加公钥

2、不pull仓库,不复制文件、不在github网页上传文件,用更改remote的方式把已有文件夹里的项目上传

3、手动在网页端和本地制造冲突,并在地址pull后,用记事本和git命令行将冲突合并

4、用git rebase -i合并(fixup或者squash)几个commit

5、在3基础上,试用git rebase解决冲突,看看它对commit hash(在github上看到的7位标志或者git log中看到的)的影响以及它对代码的影响

6、在4和5操作rebase前后,查看git reflog,结合《【【中文字幕】Linus 在 2007 年 Google Talk 上介绍 Git-哔哩哔哩】 https://b23.tv/UWxTL5u 》理解git的存储方式

7、尝试用–amend方式修补上一个commit。并结合对4的理解,思考如何修补以前的commit,以及这两种修补带来的影响

8、用git revert逆转一个提交。说说这样做的意义

推荐网页:

https://www.yiibai.com/git