Git 和 Github 备忘单
大家好 !
大家好 !
今天,我将分享我收集的所有日常 git 命令,并附上用法说明。这份清单还包含如何使用 Github 等在线 git 平台的方法。
- 我的Github上也提供了 markdown以供即时参考。
基本命令
- Git配置:
git config -- global user.name NAME
= 全局设置用户名git config --global user.email EMAIL
= 全局设置用户电子邮件git config user.name
||git config user.email
= 检查已保存的信息
创建仓库
git init
= 在当前目录中创建一个 git 存储库
分期
git status
= 检查状态,是否已暂存或未暂存git add FILE_NAME
= 将文件添加到暂存区git rm --cached FILE_NAME
= 从暂存区中删除文件git add .
= 将项目中的所有文件添加到暂存区
承诺
-
git commit -m "Specific Changes Made"
= 提交暂存区并为其指定一个特定的 ID -
git log
= 显示所有提交的详细信息 -
git log --oneline
= 将所有提交显示在同一行 -
特殊日志:这将以一种良好的格式记录信息(尝试一次😉)
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
- 这可以用作别名
Git 存储
git stash
= 清除对初始状态(最后一次提交)的更改并为当前状态创建唯一 IDgit stash apply
= 恢复当前状态- 多次使用 git stash 创建具有多个 id 的所有状态的存储列表
git stash list
= 显示所有存储(状态)及其IDgit stash apply ID
= ID是您想要返回到哪个州的数字git stash push -m "Your message"
= 用于描述储藏git stash drop ID
= 用于删除已保存的存储git stash pop ID
= 应用特定的存储并将其从历史记录中删除git stash clear
= 删除所有存储历史记录
Gitignore
- 可以创建一个
.gitignore
文件,在其中指定所有不应暂存和提交的文件夹/文件 - 例如:
node_modules/
.css.map
等等。 - 在项目开始时创建一个 gitignore 是很好的
- 一个不错的 gitignore 生成器供参考:
恢复和重置
- 用于
git log --oneline
查看要更改的commit_ID - 结帐提交:
git checkout commit_ID
= 仅检查输入的提交 ID,以只读方式查看...更改将不会被保存git checkout master
= 回到原始提交(因为签出将我们从主分支中移除)
-
恢复提交:
git revert commit_ID
= 删除所提供提交的更改(将添加新的还原提交并删除特定提交的更改)
-
重置提交:
git reset commit_ID
= 将删除提供的 id 之后的所有提交,但本地目录中的文件不会被触及(因此您仍然可以根据需要在进行更改后提交到原始状态)...可能会带您进入 vim 编辑器(输入“:wq”然后按“Enter”退出)git reset commit_ID --hard
= 将删除所提供 id 之后的所有提交,甚至删除本地目录中的所有文件和行
分支
- 用于测试新功能或代码,通过创建分支...然后仅在需要时将其合并到主分支
- 可以用于在同一个项目上工作的多个开发人员..为每个开发人员创建不同的分支,添加他们自己的功能,然后在最后合并
git branch branch_name
= 创建新分支git branch -a
= 列出所有分支git checkout branch_name
= 转到另一个分支git branch -d branch_name
= 仅当分支已合并时才删除它git branch -D branch_name
= 删除分支(即使未合并到主分支)git checkout -b branch_name
= 立即创建并转移到新分支
合并分支
-
在完成分支中的更改并提交后
-
回到 master 并运行
-
git merge branch_name
= 这会将分支合并到主分支(所有提交都显示在主分支中)= 自动 -
git merge --squash branch_name
= 这会将分支合并到主分支(只有合并后的提交才会显示在主分支中)= 手动
冲突
-
如果分支的基点(第一次提交)是主分支的头点(最后一次提交)= 无冲突
-
如果 Master 在创建 Branch 后有提交,则可能会发生冲突
-
要解决这个问题,请手动编辑文件,然后解决冲突。
-
运行
git add .
然后git commit -m "Message"
就会发生改变
Git Rebase和 Git Merge
-
使用 Git Merge 显示分支已添加到 master ,即树不是所有提交的内联
-
而 Git Rebase 不断改变基础,并使提交内联,感觉就像分支从未存在过一样
-
git rebase master
在你的分支上运行- 以 master 为基础,将其与分支的每次提交进行匹配
- 如果 Master 已经是你的基地,则无需执行步骤 3、4、5
- 解决冲突,然后
git add .
- 跑步
git rebase --continue
- 对每个提交重复 2、3 步骤 - 冲突
- 现在,大师的头颅是分支的基地
- 移至主目录
- 跑步
git rebase branch_name
- 现在,Branch 的所有提交都已添加到 Master 提交之上
-
注意!:git 文档中指定,rebase 不应在公共存储库(协作)中使用,因为它可能导致重大错误和冲突,它可以在私人存储库中使用。
Github
-
创建新的 & 克隆 Repo
- 在 Github 上创建一个新的 repo 并复制 URL
- 现在将您的代码推送到它
git push git_url master
= 推送主分支的代码(要推送所有分支,请将master替换为--all)- 创建别名以便不必总是输入 URL
git remote add origin git_url
= origin 可以是任何其他名称,但 origin 是最常用的词git push origin master
= 使用别名推送代码git push -u origin master
= 推送并开始跟踪分支(您不需要再次指定,例如,如果拉取)git clone git_url
= 将把 repo 复制到当前目录,并默认添加 origin 别名git remote -v
= 检查所有已创建的别名- 在 push\pull 中添加 id 和密码:
- 替换原点
git push origin master
git push https://username:password@repo_url.git master
- 如果密码包含@,则将其替换为%40
- 注意:这可以以纯文本形式存储您的密码
- 为了避免这种情况,您可以删除密码并稍后输入
git push https://username@repo_url.git master
- 替换原点
-
合作
- 大多数协作功能已在 Github 上提供,例如
git pull git_url
= 将更改从远程拉到本地仓库- 创建分支并进行更改
git push origin branch_name
= 将特定分支推送到远程- 当您准备合并分支时,创建一个比较和拉取请求(带有一条消息)
- 仓库的审阅者将接受更改并合并(并指定合并提交消息)
- 每次编辑之前都要拉取项目来查看更改
git branch -r
= 帮助我们查看远程分支和连接
-
分叉(贡献)
- 为开源项目做贡献
- 单击 fork,它将把 repo 复制到你的帐户
- 通过拉取 repo 进行更改,然后推送它(这将发生在您的帐户上)
- 然后转到所有者帐户的 repo 并在那里创建一个拉取请求
- 所有者可以比较更改并接受您的更改
- 最终会将你的更改合并到他们的项目中
希望您觉得它有用,感谢您的访问😊
文章来源:https://dev.to/zinox9/git-github-cheatsheet-22ok