1、创建新Git仓库
git init #初始化仓库
git add . #把仓库中的所有文件纳入版本控制
git commit -m '注释' #提交到本地仓库
2、从现有仓库克隆到本机
git clone git://github.com/schacon/grit.git [目录名称] #可自定义目录名称
可以用 git协议、http[s]协议、user@server:/path.git协议
3、文件的状态变化流程图
未跟踪 -- add文件 --> 未修改 -- vi文件 --> 已修改 -- add文件 --> 已暂存 -- commit文件 --> 未修改 -- remove文件 --> 未跟踪
4、查看当前文件状态
git status
5、跟踪一个新文件 | 暂存一个已修改文件
git add XXXfile
6、忽略一些文件
在git目录下创建 .gitignore 文件
# 注释
# 路径/通配符 忽略通配符匹配到的文件
# !路径/文件名 将此文件纳入版本控制,忽略通配符限制
7、未暂存 和 已暂存 的比较
git diff XXXfile
git diff 版本1SHA-1..版本2SHA1 #其中SHA-1号可使用缺省模式
8、提交更新
git commit -m '注释' #将暂存区内容提交到本地仓库
git commit -a -m '注释' #相当于 先执行 git add . 然后执行 git commit -m '注释'
9、移除文件
git rm XXXfile #将文件从git中移除,移除后文件为未跟踪状态
10、移动文件 | 重命名文件
git mv SRCXXXfile DESXXXfile
11、日志操作
git log #完整版日志信息
git log --pretty=oneline #精简版日志信息
git log -(n) #仅显示最近n次的提交信息
git log --stat #统计代码增改行数
git log -p -2 #比较最近两次提交差异,-2表示最近两次
git log --pretty="模式" #自定义日志信息
# 模式通配符
# %H 提交对象(commit)的完整哈希字串
# %h 提交对象的简短哈希字串
# %T 树对象(tree)的完整哈希字串
# %t 树对象的简短哈希字串
# %P 父对象(parent)的完整哈希字串
# %p 父对象的简短哈希字串
# %an 作者(author)的名字
# %ae 作者的电子邮件地址
# %ad 作者修订日期(可以用 -date= 选项定制格式)
# %ar 作者修订日期,按多久以前的方式显示
# %cn 提交者(committer)的名字
# %ce 提交者的电子邮件地址
# %cd 提交日期
# %cr 提交日期,按多久以前的方式显示
# %s 提交说明
12、撤销操作
git commit --amend #撤销提交
git reset HEAD XXXfile #撤销已暂存的文件
git chechout -- XXXfile #撤销对文件的修改
13、远程仓库的相关操作
git remote -v #查看远程库,会列出所有的远程库
git remote add [别名] git://xxxx/xx.git #添加远程库,可以给仓库添加个别名
git remote [老别名] [新别名] #别名重命名
git remote rm [别名] #删除此仓库
git remote show [别名] #查看远程仓库信息
git remote rename [老别名] [新别名] #将远程仓库重命名
14、从远程仓库抓取一个分支
git fetch #抓取默认仓库的所有分支
git fetch [别名] #抓取指定仓库的所有分支
git fetch [别名] [分支名] #抓取指定仓库的指定分支
git pull #抓取指定仓库中的指定分支,并合并到当前分支中
注:fetch仅仅是抓取分支只是把分支下载到本地,但不会合并分支。
15、将本机仓库推送到远程仓库
git push [别名] [分支名] #将本机仓库推送到远程仓库分支
注:有时会出现401错误,原因在于需要用户名密码登陆。
修改 ./git/config 文件,把
[remote?"origin"]
url = https://XXXX.XXXX.git
改为
[remote?"origin"]
url = https://用户名@XXXX.XXXX.git
修改之后,推送仓库时时需要输入密码
16、打标签
git tag #列出已有的所有标签
git tag -l 'v1.4.2.*' #列出已有标签中的指定标签
git tag -a v1.4 -m '注释' #创建带有注释的标签
git tag -s v1.5 -m '注释' #带有自己私钥的标签(GPG签署,需要自己有私钥)
git show v1.4 #显示某个标签的详细信息
17、技巧
git config --global alias.[选项别名] 选项名 #给选项起别名