git常用命令

其它
2019年05月08日
699

git初始化命令

初始化本地仓库

git
git init

初始化完毕后,目录中会生成一个.git目录

设置签名

签名分为项目级别和系统级别

形式

用户名:tom

Email:goodMorning@qq.com

作用: 区分不同开发人员的身份

这里的用户名和Email与github里面的无关

命令

git
git config user.name 用户名 git config user.email 邮箱 --or git config --global user.name 用户名 git config --global user.email 邮箱

信息保存位置:

git
.git/config ~/.gitconfig

状态查看

查看工作区、暂存区状态

git
git status

添加操作

将工作区的的“新建/修改”添加到暂存区

git
git add [file name]

提交操作

将暂存区的内容提交到本地库

git
git commit -m 'commit message' [file name]

查看历史记录

git log

多屏显示控制方式:空格向下,b向上,q退出

git log --pretty=oneline

git log --oneline

git reflog

HEAD@{移动到当前版本需要多少步}

前进后退

本质是操作HEAD指针

基于索引值

git reset --hard [局部索引值]

使用^符号: 只能后退

一个^表示后退一步,N个表示后退N步

git
git reset --hard HEAD^ git reset --hard HEAD^^ git reset --hard HEAD^^^

使用~符号: 只能后退

后退3步

git
git reset --hard HEAD~3

后退50步

git
git reset --hard HEAD~50

reset命令的三个参数对比

  • soft:仅仅在本地库移动HEAD指针
  • mixed:在本地库移动HEAD指针并重置暂存区
  • hard:在本地库移动HEAD指针并重置暂存区与工作区

删除文件并找回

前提是删除前,文件存在时的状态提交到了本地库

git
git reset --hard [指针位置]

删除操作已经提交到本地库:指针位置指向历史记录

删除操作尚未提交到本地库:指针位置使用HEAD

比较文件差异

将工作区中的文件和暂存区进行比较

git
git diff [文件名]

将工作区中的文件和本地库历史记录比较

git
git diff [本地库中历史版本] [文件名]

不带文件名比较多个文件

git
git diff

分支管理

什么是分支

在版本控制过程中,使用多条线同时推进多个任务

  • hot_fix 热修复BUG分支
  • master 主分支
  • feature_xxx 功能分支

分支的好处

同时并行推进多个功能开发,提高开发效率

各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

分支操作

创建

git
git branch [分支名]

查看

git
git branch -v

切换

git
git checkout [分支名]

合并

切换到接受修改的分支上(增加新内容的分支)

git
git checkout [被合并的分支名] git marge [有新内容的分支名]

git&github

创建远程地址别名

git
git remote add [别名] [远程地址] git remote add origin https://github.com/humandetail/learngit.git

查看别名

plain-text
git remote -v

推送分支到远程仓库

plain-text
git push origin master

克隆

git
git clone 远程地址

邀请成员加入

远程库修改的拉取

pull = fetch + merge

git
git pull [远程库地址别名] [远程分支名]

or

git
git fetch [远程库地址别名] [远程分支名] git merge [远程库地址别名/远程分支名]

示例:

git
git fetch origin master git merge origin/master

跨团队协作

协作人先Fork
协作人clone到本地
协作人本地修改完毕后推送到github
协作人然后pull request
项目拥有者审核merge
项目拥有者拉取到本地

ssh免密登陆

linux
// 进入当前用户的家目录 cd~ // 删除.ssh目录 rm -rvf .ssh // 运行命令生成.ssh密钥目录,注意是大写的-C ssh-keygen -t rsa -C [邮箱] // 进入.ssh目录查看文件列表 cd .ssh ls -lF // 查看id_rsa.pub文件内容 cat id_rsa.pub // 复制id_rsa.pub文件内容,登录GitHub,点击用户头像->Settings->SSH and GPG keys // -> New SSH Key // -> 输入复制的密钥信息 // -> 回到Git bash 创建远程地址别名 // -> git remote add origin_shh [ssh地下]