git命令小结

基本配置

ssh

生成ssh-key作为GitHub免密push的凭证

#1. 执行 
ssh-keygen 
#2. 连续回车,默认生成的路径在C:\Users\{用户名}\.ssh\id_rsa.pub
#3. 将设置复制id_rsa.pub内容到github个人中心
#具体步骤,头像--setting--ssh and GPG keys--new ssh key--输入保存(add ssh key)即可

config

# 配置文件的生效采用就近原则,仓库>用户>全局
# 不同配置项同时生效,相同配置项优先级高的覆盖优先级低的 文件分别位于
# /etc/gitconfig Win:C:\Program Files\Git\mingw64\etc\gitconfig
# ~/.gitconfig Win:C:\Users\{用户名}\.gitconfig
# .git/config

#查看系统config
git config --system --list

#查看当前用户(global)配置
git config --global  --list

#查看当前仓库配置信息
git config --local  --list

#新配置,定义用户名和邮箱,用户名一定是GitHub名字
git config --global user.name "zhangguo"  #名称
git config --global user.email zhangguo@qq.com   #邮箱

# 查看当前git版本
git --version

常用命令

#1.克隆 
git clone https://github.com/xxx/xxx.git(项目地址)

#2.初始化项目为git仓库
git init 目录名

#3.添加文件到暂存区
git add 文件/目录名
git add . #添加全部

#4.提交暂存区文件到本地仓库
git commit -m '提交消息'

#5.添加远端地址
git remote add origin(远端的名字) https://github.com/xxx/xxx.git(项目地址)
git remote #列出所有远端仓库

#6.推送到远端仓库
git push origin master(分支名)
git push #第二次提交可以省略 远端名和分支名

#7.将远端和本地合并
git pull origin master
git pull

分支管理

  1. 创建和删除
# 列出所有分支
git branch -[r,a,d,m]
# 创建分支
git branch 分支名 
# 删除本地分支
git branch -d 分支名
git branch -D 分支名 #强制删除
# 删除远端分支
git push origin :分支名称
  1. 切换分支
git checkout  分支名 
# 或者不使用git branch新建,直接git checkout -b实现新建与切换
git checkout -b 分支名 
  1. 拉取合并分支
# 取回远程主机某个分支的更新,再与本地的指定分支合并。
git pull <origin> <远程分支名>:<本地分支名>
git pull -p #在本地删除远程已经删除的分支
git push -u origin master #指定一个默认主机,这样后面就可以不加任何参数使用git push
git push --all origin #将本地的所有分支都推送到远程主机

# 在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git fetch origin master:tmp 
# 来比较本地代码与刚刚从远程下载下来的代码的区别
git diff tmp 
# 合并temp分支到本地的master分支
git merge tmp
# 如果不想保留temp分支 可以用这步删除
git branch -d temp

版本管理

#直接从暂存区删除文件,工作区则不做出改变
git rm --cached <file>
#同时删除工作区和缓存区
git rm <file>

#移除所有未跟踪文件
#一般会加上参数-df,-d表示包含目录,-f表示强制清除。
git clean [options] 

#版本树
git log
git log --pretty=oneline

#时光机
#保留源码,只回退回退commit和index信息
git reset {id} 
#完全回退
git reset --hard HEAD^^^..
git reset --hard HEAD~n
git reset --head {id}

git客户端

Git-Gui

GitHub DeskTop

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议