图示

git常用命令图示


名次解释

origin 默认远程仓库名


命令

命令作用
git clone git@github.com:UserName/projectName.git克隆远程库到本地
git remote add origin git@github.com:UserName/projectName.git绑定本地库到github中远程库
git push -u origin 本地分支名配合上一个使用,推送本地分支到远程库分支,并且绑定本地分支与远程分支的推送关系.
git push若当前本地分支与远程分支有推送关系,则可以直接使用此命令进行推送
git push -f强制推送本地仓库覆盖远程仓库
git status查看状态
git log查看日志
git reflog查看历史的分支
git branch列出所有本地分支
git branch -a列出所有分支(包括远程)
git branch 新分支名创建新分支,创建分支但依然停留在当前分支
git branch -d 分支名删除某存在分支,如果在分支中有一些未merge的提交,那么会删除分支失败,此时可以使用 git branch -D 分支名:强制删除dev分支
git add暂存
git commit - m "提交说明"提交
git reset --soft HEAD^撤销git commit,保留git add,不修改工作区。
git reset --mixed HEAD^撤销git commit,撤销git add,不修改工作区。
git reset --hard HEAD^撤销git commit, 撤销git add, 工作区恢复到上次commit的状态。
git reset HEAD 文件名撤销暂存,文件返回最近的提交的储存内容
git checkout 文件名撤销文件修改修改,文件返回最近的暂存区储存内容
git checkout 分支名切换分支(该分支必须存在)
git checkout -b 分支名切换分支,如果不存在则创建该分支(在当前节点上创建)
git merge --ff 分支名merge某分支到当前分支上. 快速合并.如果合并过程出现冲突,Git会显示出冲突并等待手动解决
git merge --ff-only 分支名merge某分支到当前分支上. 如果合并过程出现冲突,Git会自动abort此次merge
git merge --no-ff 分支名merge某分支到当前分支上. 采用no-ff规则进行merge.
git fetch只是拉取了远程 commit 数据,将本地上的远程仓库副本的 commit id 更新为latest
git pullgit fetch + git merge/ git rebase

merge参数的含义

--ff fast-forward 默认参数,允许快速移动指针.

--no-ff no-fast-forward merge时不允许快速移动指针.每次merge都必须生成一个merge专属节点!

一般出现在dev、release上首次集成(merge)特性分支时候,--ff会与--no-ff参数有明显区别,若使用该--ff参数,此时dev会直接移动指针到这个特性分支的最新commit节点. 相对应的,若使用--no-ff参数,则会新生成一个merge节点,然后将dev的指针移动到这个merge节点上.

--squash 将merge的所有内容commit合并到一个独立的节点上,然后merge到dev上.(此种手段肯定不会有快速移动指针的情况发生)

merge参数图示


具体使用

克隆库有两种模式:使用https和使用ssh。

git clone https://***
这种克隆方式如果需要提交修改等,需要提供github账户和密码
git clone git@****
这种克隆方式一开始就需要密匙,如果没有密匙,会被拒绝

获得密匙

  • 本地创建ssh密匙

    $ ssh-keygen -t rsa -C "youremail@example.com"
    
    // 进阶版,加密性高的方案
    $ ssh-keygen -o -t rsa -b 4096 -C "email@example.com"
  • 在主目录下找到.ssh 文件夹,找到id_rsa.pub这个文件,用VScode打开并复制文本内容
  • 将文本内容添加到GitHub中的ssh

Github-Setting

git配置推荐

git配置显示命令

git config --list

autocrlf

autocrlf 的作用是自动处理行结束符的转换。它有三个可能的设置值:

true:在 Windows 系统上常用。它会在提交时将 Windows 风格的行结束符(CRLF)转换为 Unix 风格的行结束符(LF),而在检出时将 LF 转换回 CRLF。这可以确保在不同平台之间共享代码时,行结束符的一致性。
input:在 Unix/Linux 或 macOS 系统上常用。它只在提交时将 CRLF 转换为 LF,而在检出时不做任何转换。这意味着在版本库中始终存储 LF,不管开发者的操作系统是什么。
false:禁用自动转换。Git 会将文件中的行结束符原样存储和检出,不进行任何转换。

safecrlf

safecrlf 是一个安全检查选项,用于防止不一致的行结束符被提交到版本库中。它有以下设置值:

true:如果检测到不一致的行结束符(例如,一个文件中同时存在 CRLF 和 LF),Git 会拒绝提交。这可以防止意外的行结束符混乱。
warn:如果检测到不一致的行结束符,Git 会发出警告,但仍允许提交。
false:禁用此检查,不进行任何警告或阻止。

配置代码

mac用户推荐

git config --global core.autocrlf input
git config --global core.safecrlf true

win用户推荐

git config --global core.autocrlf true
git config --global core.safecrlf true
最后修改:2024 年 10 月 15 日
如果觉得我的文章对你有用,请随意赞赏