Git学习笔记
文章目录
记录一些常用的 Git 命令,太容易忘了。。。

配置email地址和名字
|
|
把当前目录变为git仓库,建好后会多出一个.git目录
|
|
文件添加,放入暂存区
|
|
文件提交,提交暂存区的内容;如果最新改动没有add,这个改动不会被commit
|
|
显示当前提交情况
|
|
查看修改内容,只支持纯文本文件
|
|
查看历史日志
|
|
回到上一个版本HEAD^, 上上一个版本HEAD^^, 往上100个版本HEAD~100
|
|
回到指定版本,commit_id只需要写前几位
|
|
查看commit_id日志
|
|
把该文件的修改全部撤销,回到最近一次commit或add的状态。没有放入暂存区时,撤销修改就回到和版本库一样的状态。文件已添加到暂存区后,又作了修改,撤销修改就回到添加到暂存区的状态。
|
|
撤销某个文件暂存区的修改
|
|
删除文件
|
|
创建SSH Key
|
|
关联一个远程库
|
|
关联后推送分支内容
|
|
每次本地提交后,推送最新修改。本地新建的分支如果不推送到远程,对其他人就是不可见的。
|
|
强制推送。需要回滚的时候,可能需要强制推送。
|
|
如果推送失败,因为远程分支比你的本地更新,需要先抓取远程的最新提交
|
|
如果git pull提示"no tracking information",则需要建立本地分支和远程分支的关联
|
|
在本地创建和远程分支对应的分支
|
|
查看远程库的信息
|
|
克隆一个git repository
|
|
创建分支
|
|
切换分支
|
|
创建分支并切换到分支
|
|
查看分支
|
|
合并指定分支到当前分支
|
|
合并分支时禁用fast forward,从而保留分支信息,创建新的提交
|
|
删除分支
|
|
强行删除一个没有合并的分支,将丢失修改
|
|
查看分支合并情况
|
|
保存现场,这样你可以先做其它事,可以多次保存
|
|
恢复现场,stash内容并不删除
|
|
可以手动删除stash内容
|
|
恢复现场同时删除stash内容
|
|
查看stash内容
|
|
恢复到指定的stash
|
|
创建标签
|
|
查看标签
|
|
创建标签,附带说明
|
|
对某个commit_id打上标签
|
|
用私钥签名一个标签,采用PGP签名,先要安装gpg
|
|
删除标签
|
|
推送某个标签到远程
|
|
推送全部未推送过的本地标签
|
|
要删除远程标签,先从本地删除
|
|
让git显示颜色
|
|
要忽略某些文件,需要编写.gitignore文件并提交该文件
|
|
配置命令的别名,–global针对当前用户起作用,不加则针对当前仓库。 可以在配置文件.git/config中查看已经添加的别名。 当前用户的git配置文件则在用户目录下的.gitconfig文件中。
|
|
配置命令的别名,把暂存区的修改撤销
|
|
配置命令的别名,让其显示最后一次提交信息
|
|
搭建git私有服务器
|
|
收集所有需要登录的用户的公钥id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个选定一个目录作为Git仓库,比如/srv/sample.git,在/srv目录下输入命令:
|
|
创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
|
|
创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成
|
|
改为:
|
|
这样,git用户可以正常通过ssh使用git,但无法登录shell。因为我们为git用户指定的git-shell每次一登录就自动退出。 现在,可以通过git clone命令克隆远程仓库:
|
|
要方便管理公钥,用Gitosis。要像SVN那样变态地控制权限,用Gitolite。
文章作者 huijian142857
上次更新 2015-07-05