Loading... ## 图示 ![git常用命令图示][2] ---------- ## 名次解释 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 pull | git 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参数图示][1] ---------- ## 具体使用 克隆库有两种模式:使用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](https://s1.ax1x.com/2020/05/14/YBET54.png) [1]: https://assets.fangshirui.cn/typecho/uploads/2021/12/702053171.png [2]: https://assets.fangshirui.cn/typecho/uploads/2021/12/2215000042.png 最后修改:2023 年 05 月 23 日 02 : 06 PM © 允许规范转载