git常用操作,都在这里了(一)

配置git

配置Name和Email 命令格式:

git config --global user.name "your name"
git config --global user.email "your email address" 

为了提高命令输出的可读性 输入

git config --global color.ui true

可以通过起别名缩短命令

git config --global alias.co checkout  
#  别名
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch

想让日志更清晰,可以运行

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative  

当然命令这么长,可以用别名

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"

下次使用git lg就可以了。 此时进入~/.gitconfig会看到刚才的配置

设置SSH KEY

运行一下命令设置ssh key:

 ssh-keygen -t rsa -C "your_email@example.com"
  会输出Generating public/private rsa key pair.
           Enter file in which to save the key
    (/Users/your_user_directory/.ssh/id_rsa):(按回车键)
    Enter passphrase (empty for no passphrase)(输入密码)
    Enter same passphrase again(再次输入密码)
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:

……………… 最后得到了两个文件:~/.ssh/id_rsa和~/.ssh/id_rsa.pub

注册公钥

添加ssh密钥在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥。 打开https://github.com/settings/ssh Add SSH KEY title随便取 Key就是~/.ssh/id_rsa.pub里的全部 内容此时你的github注册的主邮箱会收到邮件提醒你The following SSH key was added to your account:.......

本地与远程通讯

此时就可以用手中的私人密钥与github进行认证和通讯了 输入命令

ssh -T git@github.com

输出

The authenticity of host ‘github.com (x.x.x.x)’ can’t be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘github.com,x.x.x.x′ (RSA) to the list of known hosts.
Hi xxx! You’ve successfully authenticated, but GitHub does not provide shell access
Connection to github.com closed.

如果不是克隆远程版本,本地创建git仓库

.git操作建立本地git文件夹 输入git init进行初始化操作

克隆

克隆仓库到本地 :

$git clone git@github.com:CheungChanDevCoder/pythonTools.git

加入暂存区

对代码进行编辑和修改提交使用

git add

文件名加入"暂存区"

查看日志

使用git log 查看提交日志 参数--pretty=short只显示提交日志第一行 git log -p 文件名 显示提交之前之后文件的变化 --graph 图形化显示使用

查看状态

git status查看当前状态

提交

使用

git commit -m "record message" 

将暂存区中的文件提交并记录提交记录 , 如果需要详细记录提交信息 不输入-m 会进入编辑提交信息编辑器一般第一行简要概括更改内容 第二行空行第三行详细描述更改内容 如果想中止提交可直接退出编辑器便会中止提交, 提交之后想修改提交的信息用

git commit --amend

可以进行修改 若是文件较少可以用

git commit -am "recored message"

来代替add 和commit -m两步使用

git diff

git diff查看当前工作树与暂存区的差别 git diff HEAD专门查看当前工作树与最后一次提交的差别

查看分支

git branch查看当前分支 -a显示当前分支的相关信息。

切换分支

git checkout -b feature-A 

创建feature-A分支并切换到feature-A分支 相当于

git branch feature-A;git checkout feature-A

两条命令 git checkout master 切换到master分支 git checkout - 切换到上一分支合并分支 git checkout master;git merge --no-ff feature-A先切换到master分支在合并 此时会打开编辑器录入合并信息 之后合并成功恢复历史

查看每次提交哈希值

git reflog查看当前仓库执行过的操作会有各个版本的哈希值

回退版本

使用git reset --hard 哈希值恢复到历史状态 解决冲突 根据冲突报告修改冲突的文件 再次git commit -am "record message"即可

压缩历史

如果遇到拼写错误等问题可以add commit之后将两个历史纪录合并成一条 使用

git rebase -i HEAD-2

命令会打开编辑器,将

 pick  7a34294 Add feature-C    pick 6fba227 Fix typo

中的第二个pick改成squash或s即可

添加远程仓库

git remote add origin git@github.com:CheungChanDevCoder/pythonTools.git 

此时会把远程仓库设成origin

推送至远程仓库 推送至master分支

先切换到master分支 git push -u origin master 其中-u表示upstream(上游)在推送的同时设置了origin 仓库的master分支是本地仓库当前分支的上游。 推送至master以外的分支,不如本地创建了feature-D分支 先切换到feature-D分支然后 git push -u origin feature-D

获取远程仓库的feature-D分支

 git checkout -b feature-D origin/feature-D  

推送至远程feature-D git push即可 更新本地的feature-D到远程的最新状态

git pull origin feature-D

git diff

git diff <$id1> <$id2>  
# 比较两次提交之间的差异  是<$id2>相对于<$id1>改变了什么
git diff <branch1>..<branch2> 
# 在两个分支之间比较 
git diff --staged   
# 比较暂存区和版本库差异

复位中软模式、硬模式、混合模式的区别

git reset --hard硬模式代表index和working directory全部复位,包括未提交的更改 git reset混合模式代表reset index但是leving working diretory untouched,也就是变为未加入暂存区的状态,但是工作空间有所有改变的代码 git reset --soft软模式代表leaving working directory and index untouched,也就是文件所有的改变加入了暂存区而未提交

原文发布于微信公众号 - python全栈布道师(gh_f7cbe2f9567b)

原文发表时间:2016-11-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Jackson0714

配置Meld为git的默认比较工具

290100
来自专栏移动端周边技术扩展

trunk push后找不到自己的库

15740
来自专栏机器学习实践二三事

VirtualBox安装CentOS联网问题

最近玩Hadoop需要几个虚拟机构成集群,就在VirtualBox上安装了CentOS,联网问题就出现了,具体就是两个: 主机与虚拟机的联通 虚拟机的上网问题 ...

20280
来自专栏杨龙飞前端

git的常用命令 查看远程仓库删除远程仓库

1.3K50
来自专栏编程

代码管理工具SourceTree的用法

【第二篇】 ? 一、Git管理和Svn管理区别 1、最核心的区别Git是分布式的,而Svn是集中式的。 2、Git每一个电脑都可以看成一个服务器,而Svn只有一...

62350
来自专栏互扯程序

想要学Git,这一篇就够了

现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享。

11130
来自专栏python3

SourceTree 提交代码以及合并

SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具。SourceTree拥有一个精美简洁的界面,大大简化了...

33620
来自专栏mukekeheart的iOS之旅

SVN服务器的搭建和使用

仓库的目录说明: db目录:就是所有版本控制的数据存放文件。 hooks目录:脚本文件的目录。 locks目录:用放置hook来放置Subversion文件库锁...

30280
来自专栏java沉淀

git安装教程和git命令使用详解

17540
来自专栏spring源码深度学习

Git快速入门

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核...

19110

扫码关注云+社区

领取腾讯云代金券