Git on the way

来源:互联网 发布:mac电脑忘记密码 编辑:程序博客网 时间:2024/04/27 14:48
用户信息:
git config --global user.name "Leo"
git config --global user.email "your@email.address"


产生根证书:

ssh-keygen -t rsa


文本编辑器:
git config --global core.editor vim

检查配置信息:
git config --list
git config <key># eg: git config user.name

获取帮助:
git help <verb># eg: git help config
git <verb> --help
man git-<verb># Linux下

获取Git仓库:
git clone URL <newname># 克隆远程(URL)仓库,区新的仓库名称'newname'

设置忽略文件:
touch .gitignore# 添加‘.gitignore’文件
notepad++ .gitignore# 编辑忽略文件内容


推送改动:
git push origin master# master 是一个分支
git remote add origin <server># 将本地仓库(非克隆)连接到某个远程服务器
git commit -a -m "MSG"# 跳过缓存区提交


查看远程仓库:
git remote show [remote-name]# 列出远程仓库的URL与跟踪分支的信息, eg:git show remote origin

远程仓库的移除与命名:
git remote rename oldname newname# 将远程仓库 'oldname'重命名为 'newname'
git remote

分支:
git checkout -b feature_x # 创建一个名为‘feature_x’的分支,并切换过去

git checkout master# 切换回主分支 'master'

git branch -a # 查看所有分支

git branch -d feature_x# 删除‘feature_x’分支,删除分支必须在另一个分支上进行删除(不能自己删除自己)
git push origin <branch># 将本地分支推送到远端仓库。本地分支不为他人所见

更新与合并:
git pull # 更新本地仓库至最新
git merge <branch># 在自己的分支工作目录中获取(fetch)并合并(merge)远端的改动。合并其他分支到自己的当前分支(如当前为master分支,则将'branch'分支的工作合并到'master'分支中).
# 以上两种情况,git都会尝试去自动合并改动。不过自动合并并非每次都能成功,并可能导致冲突(conflicts)。这时候就需要手动修改这些文件并合并这些冲突(conflicts)了。更改完成之后,需要执行如下命令以将它们标记为合并成功:
git add <filename># 向缓冲区添加文件
git diff <source_branch> <target_branch># 在合并改动之前,可以使用该命令对比文件.
git branch # 查看分支情况

标签:
git tag 1.0.0 1b2e1d64ff# 在软件发布时创建标签,这是个旧有概念,在SVN中也有,可以通过执行该命令以创建一个叫做‘1.0.0’的标签,其中‘1b2e1d64ff’是需要标记的提交ID的前10位字符。
git log # 使用该命令获取提交ID,注:上一命令中,提交的ID可以是前几位的更短的ID,只需它是唯一的。

替换本地改动:
git checkout -- <filename># 可以使用该命令替换本地的改动,将提交后的文件覆盖未提交的文件(回滚),已添加到缓冲区的改动,以及新文件都不受影响。
git fetch origin# 丢弃所有的本地改动与提交(提交到缓冲区),从服务器上获取最新版本,并将本地主分支指向到它。
git reset --hard origin/master

有用的贴士:
git config color.ui true# 彩色的git输出
git config format.pretty oneline# 显示历史记录时,只显示一行注释信息。
git add -i # 交互地添加文件至缓存区

查看提交历史:
git log
-p# 显示每次提交的内容差异
-num # 显示最近的'num'次提交日志,eg: git log -p -2
--stat # 该选项在每次提交的下民列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的那些行被移除或者是添加了。在每次提交的最后还有一个总结。
--shortstat # 只显示 --stat中最后的行数修改、添加、移除、统计
--name-only # 仅在提交信息后显示以修改的文件清单
--name-status # 显示新增、修改、删除的文件清单
--abbrev-commit# 仅显示 SHA-1的前几个字符,而并非所有的40个字符
--relative-date# 使用较短的相对时间显示 eg: "2 weeks ago"
--graph # 显示 ASCII图形表示的分支合并历史
--pretty # 使用其他格式显示历史提交信息。可用的选项包括: oneline, short, full, fuller 和format
--pretty=oneline# 该选项可以指定使用不同于默认格式的方式展示提交历史。eg: oneline, short, full, fuller
--pretty=format:"%h-%an,%ar:%s"# 定制要现实的记录格式。
%H提交对象(commit)的完整哈希字串
%h提交对象的简短哈希字串
%T树对象(tree)的完整哈希字串
%t树对象的简短哈希字串
%P父对象(parent)的完整哈希字串
%p父对象的简短哈希字串
%an作者(author)的名字
%ae作者的电子邮件地址
%ad作者修订日期(可以用 -date= 选项定制格式)
%ar作者修订日期,按多久以前的方式显示
%cn提交者(committer)的名字
%ce提交者的电子邮件地址
%cd提交日期
%cr提交日期,按多久以前的方式显示
%s提交说明
--all-match# 该选项用于以上两个选项的依赖选项,即:如果要同时满足以上两个选项搜索条件的提交,就必须用 --all-match选项,够则满足任意
-(n) # 仅显示最近的 n条提交记录
--since, --after# 仅显示指定时间之后的提交eg: git log --since=2.weeks // 显示最近两周的提交
--until, --before# 仅显示指定时间之前的提交
--author # 指定作者的提交
--committer # 仅显示指定提交者相关的提交
--grep # 搜索提交说明中的关键字
--S # 仅显示添加或移除了某个关键字的提交
eg:
查看Git仓库中,2015年8月份期间,Leo提交的但未合并的测试文件:
git log --pretty=%h - %s; --author=Leo --since="2015-08-01"; --before="2015-09-01" --no-merges

撤销操作:
git commit --amend# 当上次提交中有遗漏或者需要重复上次的提交过程,可使用此命令
eg: 
git commit -m "本次提交了三个文件(漏了一个文件)"# 主要提交
git add forgottedFile.txt# 添加遗漏的文件

git commit --amend# 此次的提交与上一次 commit是同一次提交,即第二次提交将代替第一次提交的结果.使用此命令将进入记录编辑界面,一般使用的是vim语法

git reset <--soft | --hard> [commit hashcode] # 回滚到某次提交的之前的状态


取消暂存的文件:
git reset HEAD <filename># 取消暂存
eg:
git add * # 使用该命令将所有文件提交,但是有一个名为 temp.temp的文件你不想提交的
git reset temp.temp# 撤销 temp.temp文件的提交状态

撤销对文件的修改:
git chechout -- <filename># 将指定的文件还原到上次提交的样子

远程仓库的使用:
git remote # 查看已配置的远程仓库服务器
-v# 查看远程仓库名称及其对应的URL
add [remote-name] URL# 添加远程仓库
fetch [remote-name]# 获取远程仓库
git push [remote-name] [branch-name]# 推送到远程仓库 eg: git push origin master
git remote show [remote-name]# 列出当你在特定的分支上执行 git push 会自动地推送到那一个远程分支,它也同样地列出了哪些远程分支不在你的本地,哪些远程分支已经从服务器上移除了,还有当你执行 git pull 时哪些分支会自动合并。
git remote rename [oldname] [newname]# 修改远程仓库的名称
git remote rm [remote-name]# 删除远程仓库

打标签:
git tag # 列出已有标签
git tag -l 'v1.8.5*'# 列出标签的前缀为 'v1.8.5*'
0 0
原创粉丝点击