Git命令总结
1. 基础命令
- 绑定签名
git config user.name [username]
git config user.email [email]
git config --global user.name [username] // 设置全局,系统层面
git config --global user.email [mail] // 设置全局,系统层面
- 初始化
git init
- 将工作区内容添加到暂存区
git add [file]
- 状态查看
git status
- 提交
git commit -m "commit message" [file]
2. 版本操作
- 查看历史版本
git log
git log --pretty=oneline
git log --oneline
- 查看所有版本
git reflog
- 版本回退/前进
git reset --hard [索引值]
- 版本回退(^个数表示回退版本的次数 n表示回退版本的次数)
git reset --hard HEAD^
git reset --hard HEAD~n
- 版本回退的三个参数
- –hard 移动本地库HEAD指针&&重置暂存区&&充值工作区
- –mixed 移动本地库HEAD指针&&重置暂存区
- –soft 只是移动本地库的HEAD指针
3. 文件删除(在工作区中删除了文件同时删除本地库中的文件)
- 非必须
git status
查看工作区删除文件时,文件状态为deleted - 具体操作
git add [file ]
git commit -m "commit message" [file]
4. 找回文件
- 文件已经提交到本地库
git reset --hard [索引值]
- 文件没有提交到本地库
git reset --hard HEAD
5. 比较文件差异
- 比较工作区和缓存区
git diff [file]
- 比较当前指针指向的本地库
git diff HEAD [file]
6. 分支管理
- 查看所有分支
git branch -v
- 创建新分支
git branch [name]
- 切换分支
git checkout [name]
- 合并分支(例:将hot_fix分支合并到master上)
- 切换分支
git checkout master
- 合并分支
git merge hot_fix
- 合并发生冲突(多个分支修改同一文件的同一个地方,无法自动合并,需要手动合并)
- 编辑冲突文件,删除特殊字符(前提:和具体的开发人员沟通好,如何进行修改)
- 保存文件
- 将文件添加暂存区
git add [file]
- 提交文件(注意:这里不可以携带文件参数)
git commit -m "commit message"
- 切换分支
7. 远程库操作
- 本地绑定远程地址
git remote add [地址别名] [远程仓库地址]
如:git remote add origin https://github.com/xxx/xxx.git
- 查看本地绑定的远程地址
git remote -v
- 推送本地代码到远程仓库(第一次推送需要登陆远程仓库账号密码)
git push [别名] [分支]
如: git push origin master
- 克隆项目
git clone [仓库地址]
- 初始化本地库
- 初始化远程地址别名
- 下载项目
- 拉取项目(pull = fetch + merge)
git fetch origin master // 此时并没有修改本地库的文件,仅仅起到了下载下来的操作
git checkout origin/master // 切换到下载下来的远程库的分支(非必须,只是为了查看下载下来的文件的内容)
git merge origin/master // 合并分支(前提:处于本地的master分支下)
- 拉取项目(pull)
git pull origin master
8. 跨团队协同开发
- 外部团队fork项目
- 外部团队开发
- 外部团队发起pull request请求
- 内部团队审核合并
ssh免密登录
- 进入用户目录
cd ~
- 生成.ssh目录
ssh-keygen -t rsa -C [邮箱地址]
- 查看id_res.pub文件的内容并且复制
- 进入github具体仓库的设置页面点击ssh and GPG keys
- 将刚才复制的值填写到对应的key文本框中,title随便起名,最后保存
- 本地设置ssh地址别名
git remote add [ssh别名] [ssh地址]
- push项目
git push [ssh别名] [分支名称]
如: git push ssh_origin master