摘要: Git是一款源代码管理工具(版本控制工具)
git安装
初始化仓库
- git init
- 想在哪个目录创建.git目录,就是哪个目录打开工具然后写命令
- 一般是在项目的根目录执行这个命令
自报家门喽
- 配置用户名 :
git config --global user.name "testName"
- 配置邮箱 :
git config --global user.email "test@sina.com"
- 查看配置信息:
git config --list
代码提交到仓库
1.先把代码添加到暂存区(就相当于放到门卫)
- 命令:
git add
文件路径 - 示例:
git add ./reademe.md
- 批量添加:
git add.
或者git add ./
2.把暂存区文件添加到本地仓库
- 命令:
git commit -m "注释,随便写点"
- 示例:
git commit -m "我们添加了一个新的功能"
-
-m
表示指定一个字符串,作为提交的说明(相当于注释);
3.懒人合并add 与commit 命令
git commit -a -m "这是使用合并添加与提交的操作"
-
-a
参数表明把所有修改后的文件一起添加到暂存区,只是对修改后的文件有效,对于新添加的文件没有作用
查看工作区状态
- 命令:
git status
添加忽略文件
- 忽略不需要提交的文件
在.git文件夹所在目录新建一个名为.gitignore的文件,在这个文件中写上需要被忽略的文件的路径。
- 举例: /css/index.css
- 注意一定要换行,一行一个
: /css/*.css
: /a.html
查看日志
- 命令:
git log
,可以查看每一次提交的日志 - 命令:
git log --oneline
表示使用简洁的形式输出提交日志
版本回退
-
命令:
git reset --hard Head~0
- 将代码回退到上一次提交时的状态
-
命令:
git reset --hard Head~1
- 将代码回退到上上一次提交时的状
-
命令:
git reset --hard Head~2
- 将代码回退到上上上一次提交时的状态
-
命令:
git reset --hard 版本号
- 通过每次提交时生成的版本号来回退版本
-
通过git reflog命令可以查看之前所有版本切换的操作记录,可以通过这个命令得到的版本号回退到指定的版本
比对文件差异
- 命令:
git diff
- 用来比较工作区内容与最近一次提交的内容的区别
- 如果暂存区没有文件,就会将工作与代码与最近一次提交对比
- 命令:
git diff --cached
比较暂存区的文件和仓库中文件的区别 - 对比之前某两次提交的文件的差异
- 命令:
git diff [版本号1] [版本号2] [想比较的文件路径]
- 命令:
创建分支
- 命令:
git branch [分支名]
- 创建一个新分支
- 命令:
git branch
- 查看当前所有分支
切换分支
- 命令:
git checkout [分支名]
- 切换分支后可以在切换后的分支中进行正常的操作
- 命令:
git checkout -b [分支名]
- 创建并切换分支
合并分支
- 命令:
git merge [分支名]
- git会将指定的分支合并到当前分支
删除分支
- 命令:
git branch -d [分支名]
- 删除指定分支,-d参数表示要执行删除操作
git提交中的冲突
- 如果git不能自动合并分支,就会有冲突,我们需要手动解决冲突,然后再次提交
github
github与git
- git 版本管理工具
- github 就是一个网站,只是这个网站提供git服务器的功能
上传代码到git服务器(push)
- 命令:
git push [远程服务器地址] [远程服务器的分支]
- 示例:
git push https://github.com/huoqishi/test002.git master
- 上传时可以使用一些简化的命令
- 将远程服务器地址写成变量的形式
git remote add [变量名] [远程服务器地址]
- 示例:
git remote add origin https://github.com/huoqishi/test002.git
这样之后就可以直接使用origin
来代替git push
后面写的地址了
git push origin master
还可以尽一步简化
在push
时加上-u
参数,就会默认建立本地当前分支与远程指定分支的关联,下一次push
时就不需要输入分支名了git push origin
Git 中 SSH key 生成
- 创建SSH Key。在windows下查看
[c盘->用户->自己的用户名->.ssh]
下是否有id_rsa
、id_rsa.pub
文件,如果没有需要手动生成。
打开git bash
$ ssh-keygen -t rsa -C "youremail@example.com"
- 密钥类型用 -t 选项指定,默认生成用于SSH-2的RSA密钥
- 同时在密钥中有一个注释字段,用-C来指定所指定的注释,可以方便用户标识这个密钥,指出密钥的用途或其他有用的信息。所以在这里输入自己的邮箱或者其他都行。
- 输入完毕后程序同时要求输入一个密语字符串(passphrase),空表示没有密语。接着会让输入2次口令(password),空表示没有口令。3次回车即可完成当前步骤,此时
[c盘>用户>自己的用户名>.ssh]
目录下已经生成好了。
把分支新版本合并到master版本中
- 除了一直写的代码有三个分支(master,update,test),需要在新建一个文件夹,clone主分支,新文件夹本地没有其他分支,现在要在新文件夹有update分支并合并到master上
- 之所以有这样奇怪的需求,时之前主代码提交测试了都没问题,要发版本打Tag之前,我有改了几行很小的代码,他们不让我用这个,可是又想让我保留改的代码,所以让我新建文件夹来搞,哎
- 把源码clone到本地库中。
git clone my_git_site
- 在本地新建一个与远程的版本相同(被合并的版本)的update分支
git checkout -b update origin/update
- 返回到master版本
git checkout master
- 把本地的update合并到master
git merge update
- 把本地的master同步到远程
git push origin master
- 不需远程的版本了,删除
网友评论