# rebase **Repository Path**: renxiaopeng1/rebase ## Basic Information - **Project Name**: rebase - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-28 - **Last Updated**: 2024-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 项目说明 ` 练习git相关的项目 ` ## git 命令相关 ### git安装后-指定名称和邮箱 ```` git config --global user.name "Your Name" git config --global user.email "email@example.com" ```` ### 创建版本库 ```` mkdir learngit //创建 cd learngit //使用 pwd //查看当前目录 git init //初始化,生成.git文件(若该文件隐藏,则使用ls -ah) ```` ### 把文件添加add和提交commit到版本库 ```` git add test.txt //添加 git commit -m "wrote a test file" //提交 git commit -m "add 3 files." //一次性提交多个文件 ```` ### 版本控制 ```` 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 //丢弃暂存区的修改(若已提交,则回退) ```` ### 删除文件 ```` rm test.txt //直接删除 git rm test.txt git commit -m "remove test.txt" //删错了,恢复 git checkout -- test.txt ```` ### 远程仓库 ```` ssh-keygen -t rsa -C "youremail@example.com" //创建SSH Key git remote add origin git@github.com:Daisy/AKgit.git //关联 git push -u origin master //将本地内容推送到远程仓库(第一次) git push origin master //将本地内容推送到远程仓库(之后) git remote -v //查看远程仓库信息 git remote rm origin //删除远程仓库(解绑) git clone git@github.com: Daisy/AKgit.git //克隆远程仓库 //克隆之后使用和查看 cd gitskills ls git remote //查看远程库的信息 git remote -v //查看远程库的详细信息 ```` ### 多人协作 ```` git checkout -b dev //创建并切换到分支dev //创建并切换到分支dev,同上 git branch dev //创建 git checkout dev //切换 //新版本 git switch -c dev //创建并切换到分支dev git switch master //直接切换分支 git branch //查看当前分支 git merge dev (--no-ff)(-m)//合并,把dev分支的工作成果合并到master分支上 git branch -d dev //删除dev分支 ```` ```` git stash //将现场储藏起来 git stash list //查看储存的工作现场 //恢复和删除 git stash apply git stash drop //恢复并删除 git stash pop git cherry-pick 4c805e2 //复制修改 ```` ```` git push origin master(dev) //推送分支 git checkout -b dev origin/dev //创建远程origin的dev分支到本地 git pull //抓取分支(解决冲突) git branch --set-upstream-to=origin/dev dev//指定本地与远程dev的链接 git rebase //把本地未push的分叉提交历史整理成直线 ```` ### 标签管理 ```` git tag v1.0 //打标签 git tag -a v0.1 -m "version 0.1 released" 1094adb //指定标签名和说明文字 git tag //查看所有标签 //若是忘记打,则查找历史提交commit id ,再打上 git log --pretty=oneline --abbrev-commit git tag v0.9 f52c633 git show v0.9 //查看标签详细信息 git tag -d v0.1 //删除标签 git push origin v1.0 //推送标签到远程 git push origin –tags //一次性推送全部本地标签 //删除标签,(若已推送到远程,先从本地删除,从远程删除) git tag -d v0.9 git push origin :refs/tags/v0.9 ```` ### 自定义git ```` git config --global color.ui true //让git显示颜色 ```` ```` //忽略特殊文件 //.gitignore文件 # Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: *.py[cod] *.so *.egg *.egg-info dist build # My configurations: db.ini deploy_key_rsa //把该文件也提交到git git add -f App.class //强制添加被忽略的特殊文件 git check-ignore -v App.class //检查哪个规则出错 # 排除所有.开头的隐藏文件: .* # 排除所有.class文件: *.class # 不排除.gitignore和App.class: !.gitignore !App.class ```` ```` git config --global alias.st status //配置别名 git config --global alias.unstage 'reset HEAD' //配置操作别名 git config --global alias.last 'log -1' //显示最后一次提交信息 git last //显示最近一次的提交 git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" //颜色 cat .git/config //查看每个仓库的git配置文件 cat .gitconfig //查看当前用户的git配置文件 ```` ### 查看用户邮箱 ```` git config user.name git config user.email ```` ### 查看当前的文件状态,确认哪些文件被添加到了暂存区。 `git status` ### 来撤销指定文件的 Git add 操作 `git reset HEAD . ` ### 撤销完成的合并操作 `git reset --merge` ### 撤销代码 ```` //撤销上一次本地提交的 git reset HEAD~1 方法1 //表示不删除工作空间代码,撤销commit,保留git add .操作 //HEAD^ 表示回到上一个版本(在push之前你可能有多次commit),也可以写成HEAD~1 //有两次提交本地记录就把HEAD~1改成HEAD~2就可以了。 git reset --soft HEAD^ 方法2 //表示不删除改动过的代码,撤销commit,并且撤销git add . 操作, //这个为默认参数(git reset --mixed HEAD^和git reset HEAD^操作效果一样) git reset --mixed HEAD^ 方法3 表示删除工作空间代码,撤销commit,撤销git add .操作, 在完成这个操作之后恢复到上一次commit的状态 git reset --hard HEAD^ ```` ### SSH说明 ```` windows系统位置 C:\Users\用户名\.ssh id_rsa: 这是SSH私钥文件,用于对连接进行身份验证。私钥文件必须严格保密,只有持有私钥的用户才能进行SSH连接。 id_rsa.pub: 这是SSH公钥文件,是与私钥相对应的公钥。当你想要通过SSH连接到另一台计算机时, 你需要将此公钥添加到目标计算机的authorized_keys文件中,以便进行身份验证。 known_hosts: 这个文件包含了你曾经连接过的远程主机的公钥。当你尝试连接到一个远程主机时, SSH会检查这个文件以确保你连接到的主机是你曾经连接过的那个。 如果主机的公钥与known_hosts中存储的不匹配,SSH会给出警告,提示可能存在安全问题。 ````