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 许可协议。转载请注明来自 食葫芦的葫芦娃!
评论