Git

Git 常用命令梳理

2017-06-27  本文已影响67人  誓词倾城

结合自己的开发实践,梳理常用操作命令。用于后续的参考(做备忘录)

Git 安装

OS : Ubuntu 16.0.4

# 安装
sudo apt install git
# 验证
git --version

Git 配置

# 用户名、邮箱配置 与 取消配置
git config [--global] user.name user.name/email
git config [--global] --unset user.name/email
# 查看项目配置信息
git config -l
# commit 默认编辑器
1. git config --global core.editor "vim"
2. export GIT_EDITOR=vim
3. 修改~/.gitconfig, 添加
[core]
    editor = 'vim'
# 查看远程库
git remote
# 配置多个远程库
git remote add [upstream(远程库别名)] [ssh仓库地址]
# 删除远程库
git remote rm [upstream(远程库别名)]

Git 多账号配置

# 新建ssh key (~/.ssh),并自定义秘钥文件名(id_rsa_xxx)
ssh-keygen -t rsa -C "XXXX@xxx.com"
# SSH 添加新私钥
ssh-add ~/.ssh/id_rsa_xxx
# 添加配置文件(~/.ssh/config)
vim config

以下内容添加到config文件中:
# start
# 该文件用于配置私钥对应的服务器
Host github
HostName github.com
User xxx
IdentityFile C:/Users/Administrator/.ssh/id_rsa

# 建一个别名xxx,新建的帐号使用这个别名做克隆和更新
Host xxx //别名
HostName xxx
User xxx
IdentityFile C:/Users/Administrator/.ssh/id_rsa_xxx
# end

# 测试
ssh -T git@github.com  
ssh -T git@github
# 应用
git clone git@github:xxx.git

参考链接:http://www.cnblogs.com/BeginMan/p/3548139.html

Git 基本命令

# 仓库拉取
git clone [仓库地址]
# 拉取更新
git pull / fetch  [远程仓库名] :git fetch origin
# 分支查看
git branch
# 分支创建
git branch -b branchXX
# 切换分支
git checkout branchXX
# 分支删除
git branch -D branchXX
# 远程分支删除
git push origin --delete branchXX
# 分支合并
git merge branchXX
# 修改内容查看
git diff [文件全路径] //查看文件修改内容,便于review
git diff [分支名] //比较间的不同
# 查看提交日志
git log

git fetchgit pull 区别,简单讲,git pull会自动与本地代码合并,而git fetch 需要手动执行merge操作。官方介绍

数据回滚

git本地架构

git reset

git reset 命令执行本地仓库中数据的回退
git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit_id>]

--mixed 重置本地仓库当前版本,以及重置缓存区(默认)(缓存区对应图中的index)
--soft    仅仅重置本地仓库
--hard 重置工作区、暂存区、本地仓库
--merge 重置工作区、暂存区、本地仓库
--keep 重置本地仓库 但是保留本地修改

# HEAD指向的版本就是当前版本
git reset --hard HEAD^ //回退的上一个版本,可以用来清除已经add到缓存区但是不想进一步提交的内容
git reset --hard HEAD^^ //回退的上上一个版本
git reset --hard HEAD~10 //回退的上10个版本

# 使用commit id回退(commit_id使用 git log 查看)
git reset --hard commit_id
git reset --hard 3628164 // commit_id 可以只输入前几个字符

git reflog // 查看命令历史,即便自己回退错误,也能正确的返回

git revert

git revert 用一个新提交来消除一个历史提交所做的任何修改

git revert [commit_id] //commit_id使用 git log 查看

git checkout --

git checkout -- 用来回退本地已修改但没有 commit 的文件

git checkout -- [文件全路径/通配符]

git stash

git stash 临时存储。你正在开发A功能,B功能的有个紧急的bug需要修复,但是正在开发的代码不能构成一个commit,你该怎么办?使用 git stash 储藏当前工作状态。

# 储藏
git stash
# 查看储藏的队列
git stash list
# 还原
git stash pop/apply  [stash] //stash 为 git stash list 中的索引值,如stash@{0},
默认还原队列中的第一个存储状态
# 清除储藏的所有状态
git stash clear 

git popgit apply的区别为 git pop 还原后会删除该储藏记录,git stash pop 相当于 git stash apply && git stash drop

Git 小技巧

# 删除本地还未add的修改
git clean -f -d 
# 在本地库中删除一个文件
git rm 文件名
# 内建的图形化 git:
gitk
# 彩色的 git 输出:
git config color.ui true
# 显示历史记录时,每个提交的信息只显示一行:
git config format.pretty oneline
# 可视化分支合并图
git log --graph  

官网链接

上一篇下一篇

猜你喜欢

热点阅读