Git常用指令
1、配置信息
1.1配置用户信息
git config --golbal user.name "username" git config --golbal user.email "you@emample.com"
1.2查看配置信息
git config --global user.name git config --global user.email
2、基础操作指令
2.1存储提交
- 初始化仓库:
git init - 工作区到暂存区:
git add - 暂存区到本地仓库:
git commit - 提交并添加注释:
git commit -m "这是注释内容"
2.2查看修改的状态(status)
2.3查看日志
options:
- –all 显示所有分支
- –pretty=oneline 将提交信息显示为一行
- –abbrev-commit 使得输出的commitld更简短
- –graph 以图的形式显示
2.4版本回退
- 命令形式:
git reset --hard commitID
- commitID可以使用
git-log 或git log 查看 - 查看已经删除的记录:
git reflog
2.5文件管理忽视列表
创建.gitignore 文件,将不需要git管理的文件名写入到.gitignore 当中 下面是一个实例:
# no .a files
*.a
# but do track lib.a, even though you're ignoring .a files above
!lib.a
# only ignore the TODO file in the current directory, not subdir/TODO
/TODO
# ignore all files in the build/ directory
build/
# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt
# ignore all .pdf files in the doc/ directory
doc/**/*.pdf
2.6分支
概念: 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。
查看本地分支
创建分支:
切换分支
创建并切换到一个分支
*合并分支
切换到将要合并到的分支
执行命令后会打开编辑界面,退出vim编辑
删除分支 先切换到其他分支
- 命令:
git branch -d [分支名] 删除分支时需要做各种检查 - 命令:
git branch -D [分支名] 不做任何检查,强制删除
解决冲突: 当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:
- 处理文件中冲突的地方
- 将解决完冲突的文件加入暂存区(add)
- 提交到仓库(commit)
3、Git远程仓库
3.1注册github
3.2创建远程仓库
3.3配置SSH公钥
- 生成SSH公钥:
ssh-keygen -t rsa -b 4096 -C "you@example.com" - 不断回车
- 设置账户公钥
- 获取公钥
- 账户添加公钥
- 点击github头像,选择settings
- 选择SSH and GPG keys
- 新建一个SSH key
- 将生成的公钥复制进去
- 验证配置
3.4操作远程仓库
3.4.1添加远端仓库
此操作时先初始化本次仓库,然后与已建立的远程仓库进行对接
- 命令:
git remote add <远端名称> <仓库路径>
- 远端名称,默认是origin,取决于与远端服务器设置
- 仓库路径,从远端服务器获取此URL
- 例如:
git remote add origin git@github.com:TEST/GitTest.git
3.4.2查看远程仓库
3.4.3推送到远程仓库
- 命令:
git push [-f] [--set-upstream] origin master
- 如果远程分支名与本地分支名相同,则可以只写本地分支名
-f 表示强制覆盖--set-upstream 推送到远端的同时建立起和远端分支的关联关系
git push --set-upstream origin master - 如果当前分支已经和远端分支建立关联,则可以省略分支名和远端名
git push 将master分支推送到已关联的远端分支
3.4.4克隆远程仓库
- 命令:
git clone <仓库路径> [本地目录]
3.4.5从远程仓库拉取和抓取
- 抓取命令:
git fetch [remote name] [branch name]
- 抓取就是指令就是将仓库里的更新都抓取到本地,不会合并
- 如果不指定远端名称和分支名,则抓取所有分支
- 拉取命令:
git pull [remote name] [branch name]
- 拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
- 如果不指定远端名称和分支名,则抓取所有并更新当前本地分支
3.4.6解决合并冲突
解决方式: 如果和远程仓库间发生了冲突,需要先拉取远程仓库,经过合并后在本地仓库中将冲突解决,再提交到远程仓库中
|