Git的基本使用
Git流程图
命令:
1. clone(克隆):从远程仓库中克隆代码到本地仓库
1. chechout(检出):从本地仓库中检出一个仓库分支然后进行修订
1. add(添加):在提交前检代码提交到暂存区
1. fetch(抓取):从远程仓库抓取到本地仓库,不进行任何的合并操作,一般不用
1. pull(拉取):从远程仓库拉到本地仓库,自动进行合并(merge),然后放到工作区,相当于fetch+merge
1. push(推送):修改完成后,需要和团队共享代码时,将代码推送到远程仓库
Git基本配置
git config --global user.name "myname"
git config --global user.email "hello@qq.com"
为常用指令配置别名
touch ~/.bashrc
在.bashrc输入
1
2
3#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
alias ll='ls -al'执行
source ~/.bashrc
获取本地仓库
git init
基础命令
添加到工作区add
git add file|通配符
提交到本地仓库commit
git commit -m '注释'
查看修改状态status
git status
查看提交日志log
git log [option]
option:
+ --all 显示所有分支
+ --pretty=oneline 将提交信息显示为一行
+ --abbrev-commit使得输出commitId更简短
+ --graph以图的 形式显示
版本切换
git reset --hard commitID
git reflog
查看已经删除的提交记录
分支
查看本地分支
git branch
创建本地分支
git branch 分支名
将某个分支合并到当前分支
切换分支
git checkout 分支名
git checkout -b 分支名
切换到一个不存在的分支(创建并切换)
合并分支
git merge 分支名称
删除分支
不能删除当前分支,只能删除其他分支
git branch -d b1
删除分支时,需要各种检查
git branch -D b1
不做检查,强制删除
Git远程仓库
配置SSH公钥
生成SSH公钥
ssh-keygen -t rsa
- 不断回车
Gitee设置账户公钥
cat ~/.ssh/id_rsa.pub
获取公钥- 粘贴公钥
验证
`ssh -T git@gitee.com`
添加远程仓库
配置SSH公钥
ssh-keygen -t rsa
不断回车,如果公钥已经存在,则会被覆盖
设置远程仓库公钥
cat ~/.ssh/id_rsa.pub
获取当前git公钥(本地)ssh -T git@gitee.com
验证是否配置成功
此操作时先初始化本地库,然后与创建的远程库对接
git remote add <远端名称><仓库路径>
- 远端名称,默认是origin,可以自定义
- 仓库路径,从远端服务器获取的URL
eg:git remote add origin git@gitee.com:czbk_zhang_meng/git_test.git
查看远端仓库
git remote
推送到远程仓库
git push [-f][--set-upstream][远端名称[本地分支名][:远端分支名]]
如果远端分支名和本地分支名相同,则可以只用写本地分支名,注意,本地分支名要与远端分支名相同
`git push origin master`
-f 强制覆盖
--set-upstream
推送到远端的同时并建立和远端分支的关联关系如果当前分支已经和远端分支关联,则可省略分支名和远端名
查看本地分支和远程分支的关联关系
git branch -vv
从远程仓库克隆
git clone <仓库路径>[本地目录]
从远端仓库抓取和拉取
- 抓取
git fetch [remote name][branch name]
- 抓取是将仓库里的更新都抓到本地,不进行合并
- 如果不指定分支名,则抓取所有分支
- 拉取
git pull [remote name][branch name]
- 拉取是将远端仓库的修改拉倒本地并进行合并
=fetch+merge
- 如果不指定远端名和分支名,则抓取所有并更新当前分支
- 拉取是将远端仓库的修改拉倒本地并进行合并
里的更新都抓到本地,不进行合并
+ 如果不指定分支名,则抓取所有分支
- 拉取
git pull [remote name][branch name]
- 拉取是将远端仓库的修改拉倒本地并进行合并
=fetch+merge
- 如果不指定远端名和分支名,则抓取所有并更新当前分支
- 拉取是将远端仓库的修改拉倒本地并进行合并