git常用的命令
git的两大特点
- 版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。
- 分布式
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。首先找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。可以自己搭建这台服务器,也可以使用GitHub网站。 - 工作区与暂存区的区别
工作区:就是你在电脑上看到的目录,比如目录下mygit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。


基本操作
| 说明 | 命令 |
|---|---|
| 初始化仓库 | git init |
| 创建版本记录 | git add |
git commit -m "版本说明信息" |
|
| 查看有哪些未被提交到版本库下 | git status |
| 查看版本记录与序列号 | git log |
| 回退到上一个版本(一个^表示前一个版本) | git reset --hard HEAD^ |
git reset --hard 版本序列号 |
|
| 查看操作记录 | git reflog |
| 对比文件不同 | git diff HEAD -- 文件 |
| 对比两个版本的某个文件不同 | git diff HEAD HEAD^ -- 文件 |
分支
master:用户保存发布的项目代码。v1.0,v2.0
dve:保存开发过程中的代码

| 说明 | 命令 |
|---|---|
| 创建分支 | git branch 分支名称 |
| 切换分支 | git checkout 分支名称 |
| 创建并切换分支 | git checkout -b 分支名称 |
| 查看全部提交记录 | git log --pretty=oneline |
| 合并分支到当前分支 | git merge 分支名称 |
| 删除分支 | git branch -d 分支名称 |
| 禁止快速合并 | git merge --no-ff -m '提交的信息' 合并的分支名称 |
当临时有需求的情况下,暂时放下手头工作快速切换新需求
| 相当于弄了个快照 | git stash |
|---|---|
| 查看快照 | git stash list |
| 恢复快照 | git stash pop |
冲突
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
其中<<<HEAD是指主分支修改的内容,>>>>>fenzhi1 是指fenzhi1上修改的内容,我们可以修改下如下后保存:手动解决冲突,并提交
远程操控
1 | 添加ssh账户: |
| 说明 | 命令 |
|---|---|
| git全局设置: | git config --global user.name "你的名字" |
git config --global user.email "你的邮箱" |
|
| 推送代码,一般都是创建一个分支保存完后(app、commit)再推送) | git push origin 分支名称 |
| 克隆仓库 | git clone 仓库地址 |
| 如果克隆失败,尝试输入以下两条代码 | eval "$(ssh-agent -s)" |
ssh-add |
|
| 忽略远程版本与本地版本差异,强行pull下来 | git pull origin master --allow-unrelated-histories |
| 跟踪远程(可以直接git pull,不用打origin smart | git branch --set-upstream-to=origin/远程的分支 本地的分支 |
| 推送到远程的初始仓库 | git remote add origin 远程仓库的地址 |
| 切换远程仓库 | git remote set-url origin 远程仓库的地址 |
.gitignore
| 语法 | 含义 |
|---|---|
| / | 目录 |
| * | 多个字符 |
| ? | 单个字符 |
| [] | 多个可选字符匹配单个字符 |
| ! | 不忽略(跟踪)匹配到的文件或目录 |
例子:
1 | #忽略所有.svn目录 |
规则不生效问题:
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:git rm -r --cached target
此后不再追踪track这两个文件夹
尾巴
更加详细的链接:
码云帮助中心:https://gitee.com/help/categories/43
git大全:https://gitee.com/all-about-git
菜鸟教程:https://www.runoob.com/git/git-tutorial.html
git命令学习demo:https://oschina.gitee.io/learn-git-branching/?demo
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 食葫芦的葫芦娃!
评论





