Git使用指北
创建与提交
在当前文件夹创立一个版本库
1 | git init |
把文件添加到暂存区
1 | git add [文件名或文件路径] |
把添加到暂存区中的文件提交到版本库
1 | git commit -m "[提交说明]" |
版本管理
更新和回退的操作是一样的,其实都是维护一个
HEAD
的指针指向哪一个commit
查看版本记录
1 | git log # 显示提交日志 |
版本回退
--hard
代表回到上次提交时的状态,文件被修改(修改暂存区,文件)
--soft
代表回到上次提交后的状态,暂存区和文件均未被修改(都不修改)
--mixed
或不添加参数代表回到上次提交后的状态,暂存区与指定版本相同,文件未被修改(修改暂存区,不修改文件)
1 | git reset --hard HEAD^ # 回退对上一个版本的已提交状态 |
命令记录
可以回看每一次命令记录,获得对应版本号
1 | git reflog |
更新版本
1 | git reset --hard [指定版本号的SHA1前几位] |
查看各个文件状态
1 | git status |
丢弃工作区的修改
若文件已经提交到暂存区,则返回原暂存区的状态
若文件尚未进行提交,则撤回到版本库的状态
1 | git checkout -- [文件名或文件路径] |
删除版本库文件
若在文件目录中误删了文件,则可以通过
checkout
进行回退
1 | git rm [文件名] |
远程仓库
创建SSH-Key
1 | ssh-keygen -t rsa -C "[邮箱地址]" |
关联空仓库
需要通过SSH链接(开头为
git@
)关联,不能通过HTTPS链接(开头为https://
)关联
1 | git remote add origin [个人仓库的SSH链接] |
将本地内容推送到远程库上
下面出现的
origin
是远程库的习惯命名,与Github上显示的名字无关
1 | git push # 一般使用 |
查看远程库信息
1 | git remote -v |
解绑远程库关联
1 | git remote rm origin |
仓库克隆
1 | git clone [仓库链接] |
分支管理
创建分支
1 | git branch [分支名] |
切换分支
1 | git checkout [分支名] # 等价 |
创建并切换分支
1 | git checkout -b [分支名] # 等价 |
查看分支
1 | git branch |
合并当前分支到指定分支
将当前分支的指针指到指定分支上
在存在冲突的情况下,也就是有修改的情况下,分支不能直接合并,需要手动修复冲突
1 | git merge [指定分支名] # 快速合并(出现冲突时不是) |
删除分支
1 | git branch -d [分支名] # 只删除分支指针,不删除commit |
分支策略
需要保证master分支的稳定性,一般的开发在dev分支上。此外,每一个人的开发都要维护自己的分支。
存储工作现场
1 | git stash |
查看工作现场列表
1 | git stash list |
恢复工作现场
1 | git stash apply # 恢复工作现场,并不删除stash中的对应条目 |
将对应提交复制到当前分支
只是复制修改,而不是复制全部
1 | git cherry-pick [指定版本号的SHA1前几位] |
抓取分支
1 | git checkout -b [分支名] origin/[分支名] |
设置本地分支与远程分支的链接
1 | git branch --set-upstream-to=origin/[分支名] [分支名] |
获取最新提交
1 | git pull |
推送指定分支
1 | git push origin [分支名] |
标签管理
输入标签
需要注意的是,标签是打在版本号上面的
1 | git tag [标签名] # 对当前版本打标签 |
删除标签
1 | git tag -d [标签名] |
将本地标签推送到远程
1 | git push origin [标签名] |
删除远程标签
1 | git tag -d [标签名] # 先删除本地标签 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 大聪明de小妙招!
评论