git 常用操作笔记
初始化本地仓库
git init
设置git签名
项目级别设置git签名: 签名保存在当前项目文件夹下的.git文件夹的config文件中 git config user.name 用户名 git config user.email 邮箱 全局设置git签名 签名保存在C:\Users\Administrator.DESKTOP-DD13B5F\.gitconfig git config --global user.name 用户名 git config --global user.email 邮箱
查看状态,提示红色代表文件有改动,提示绿色代表有改动并且已经加入本地暂存区
git status
追踪文件添加到暂存区
#追踪所有文本,提交到暂存区
git add.
#追踪某个文件,提交到暂存区
git add 文件名
移除提交到暂存区的文件
#移除指定文件 git restore --staged 文件名 #移除所有文件 git restore --staged .
在未提交到暂存区之前,撤销修改
#撤销所有文件的修改
git restore .
#撤销某个文件的修改
git restore 文件名
将暂存区更改的内容提交到本地仓库
#提交单个文件 git commit -m "这里是本次提交的注释信息" 文件名、 #提交全部 git commit -m "这里是本次提交的注释信息"
commit回滚
#HEAD^表示上一个版本 #HEAD 表示当前索引指针,始终指向当前项目索引 #--soft:不删除代码,仅仅撤销commit,不撤销 git add #--hard:删除工作空间改动代码,撤销commit,撤销git add . #--mixed:不删除工作空间改动代码,撤销commit,撤销git add . #例: #1.不删除工作空间改动代码,撤销commit,不撤销add,HEAD^表示撤销到上一个版本 git reset --soft HEAD^ #2. #打印历史版本 git reflog #撤销到指定版本,Hash值可以通过git log,git reflog获得,git log能查看当前Head指向的版本索引 git reset --hard Hash值 3. #回退指定步数 #回退三步 git reset --hard HEAD~3 #更多详情:https://blog.csdn.net/w958796636/article/details/53611133
显示历史提交
#简洁显示,并缩短hash git log --oneline #带回退步骤显示历史 git reflog #简洁显示,不缩短hash git log --pretty=oneline
差异对比
#git diff命令其实是将工作区的文件和暂存区进行对比
#git diff命令并不会显示新增的文件
#将工作区和暂存区的所有文件比较差异
git diff
#将工作区和暂存区的某个文件比较差异
git diff 文件名
#将工作区和本地库某个文件比较差异
git diff HEAD 文件名
#将工作区和本地库所有文件比较差异
git diff HEAD
#将工作区某个文件和本地库某个版本的某个文件比较差异
git diff 版本Hash 文件名
#将工作区和本地库某个版本的所有文件比较差异
git diff 版本Hash
创建分支
git branch 分支名 查看分支 git branch -v 切换分支 #分支名可以使用tab自动补全 git checkout 分支名
合并分支
#首先切换到需要合并到的分支 git checkout master #查看当前所在分支 git branch -v #合并分支,将login分支合并到master git merge login
查看远程仓库别名
git remote -v
推送到远程仓库
git push 仓库别名 分支名 例 git push origin master 强制推送: git push -f origin master 注释: origin远程仓库名,master分支名,-f为force,意为:强行、强制。 当本地仓库和远程仓库有冲突时,可以使用这个命令,这个命令的意思就是强制用本地的代码去覆盖掉远程仓库的代码
拉取远程仓库代码同步到本地
git pull
引用别人项目为自己项目的子模块
git submodule add 别人项目地址 子模块名 例:git submodule add https://github.com/icedland/iced.git iced
克隆项目
git clone 项目地址
克隆项目高级用法: 例:git clone --depth 1 https://github.com/dotnet/runtime.git --branch v5.0.2 解释: --branch v5.0.2 表示克隆标签为 v5.0.2的版本 --depth 1表示克隆最近一次提交