最近想使用git上传一下自己学习过程做的unity项目,然后就开始了关于Git的学习
主要参考的是这篇文章
下面就直接上正文了,我这也有文件版的,想要文件的可以私信我,看到了会发的
Git init | 初始化当前目录为仓库,初始化后会自动将当前仓设置为master | ||||||||||||||||||||||||||||||||||||||
Mkdir name | 创建目录(名称为name) | ||||||||||||||||||||||||||||||||||||||
Touch name.c | 新建一个文件(name.c) | ||||||||||||||||||||||||||||||||||||||
Git add | 将文件提交到本地仓库的提交缓存 | ||||||||||||||||||||||||||||||||||||||
Git commit -m "name" | 将修改提交到本地缓存(name为描述信息) | ||||||||||||||||||||||||||||||||||||||
Git commit --amend 不带":"为命令模式 | 进去vi编辑器重写提交信息
|
Git log | 查看日志 | ||||||||
Git reset --hard | 回滚仓库代码
| ||||||||
Git status | 查看当前仓库状态
| ||||||||
Git add --all | 将所有改动添加到缓存区,包括删除 | ||||||||
Git add . | 将除删除操作外的所有改动添加到缓存区 | ||||||||
Git checkout -- file | 将文件切换到最近的一次的提交状态,只能使用一次不能重复使用 | ||||||||
Git log filename | 查看单个文件的可回滚版本 | ||||||||
Git rm filename | 删除文件 |
想要对文件执行操作必须先用git add将文件添加到缓存区,对文件进行跟踪后才可对其进行操作。
对一个文件一次只能进行一次更改,用git commit -m""提交后,才能进行下一次操作
GitHub使用:
Git reflog | 当前库所有的提交历史,凡是对当前库进行迭代的版本都会显示 | ||||
Git rm后的恢复操作 |
| ||||
Git checkout -b <name> | 创建一个新分支,并跳转到该分支 | ||||
Git branch | 查看当前分支,即HEAD指向的分支 | ||||
Git branch <name> | 创建一个分支,但不跳转 | ||||
Git checkout <name> | 切换分支 | ||||
Git branch -a | 查看所有当前可用分支 | ||||
Git merge | 合并分支(在新建分支完成工作后希望将其他分支的文件合并到主分支master上,只需切换到master分支在执行 “git merge <name>”即可) |
*若在任何分支上创建文件,但未提交到仓库,那他在所有仓库都是可见的,因为创建的文件放置在目录中,而更换仓库git只更新和仓库目录有关的文件,无关的文件依然放置在工作区
Git branch -D <分支名> | 删除本地分支 |
Git push origin --delete <远程分支名> | 删除远程分支名 |
ssh-keygen -t rsa -C "your_email@example.com" | 本地创建ssh的key |
git remote add origin git@github.com:beiszhihao/test.git | 远程关联github仓库 |
git push -u origin master | 将本地仓库文件推送到远程,将master的分支也提交上去(仅提交通过git commit -m""提交至本地仓库的文件) |
Git push origin <分支名> | 仅提交当前分支 |
Git clone | 将远程仓库关联到本地仓库(不需要git init,git clone会自动帮我们初始化) |
Git clone -b | 指定分支名 |
Git branch -r | 列出所有远程分支 |
git clone -b dev https://github.com/example/project.git my-local-project | 将远程仓库克隆到本地目录 |
GitHub提交项目流程
Git add | 提交到缓存 |
Git commit | 提交到本地仓库 |
Git push origin <分支名 > | 推送到远程 |
Git branch -m <分支名> <新分支名> | 修改分支名 | ||||||||||
Git stash | 保留当前工作区内容切换分支(在当前工作区做出修改转换到其他工作区,git会终止你的内容 ) | ||||||||||
Git stash list | 查看所有存储的工作状态 | ||||||||||
Git cherry-pick | 将别的分支的代码转移到自己的分支上,这个操作只会将master改动的代码合并到我们的分支上 | ||||||||||
Git remove show origin | 显示所有远程分支 | ||||||||||
Git merge master --allow-unrelated-histories | 强制合并分支(两个不同的分支或是该分支不是从原生仓库分离出来的) | ||||||||||
Git fetch | 拉取所有分支 | ||||||||||
Git submodule | 子模块管理
|
Git分支开发步骤
拉取分支后,简述完成的工作,完成工作后合并到master分支上
Git branch -D | 强制删除分支 |
Git diff | 查看不同分支文件的差异(详细请搜索) |
Git remote | 查看当前仓库 |
Git remote -v | 查看更详细的权限信息 Fetch 代表可以拉取仓库,push 代表可以推送 |
Git switch <分支名> Git2.23引入 | 切换分支,分支不存在时是不会创建 |
Git switch -b <分支名> | 合并分支 |
Git switch -c <分支名> | 创建分支 |
Git restore <filename> | 撤销提交与修改 |