git使用简述

Git的常用命令

Git 配置信息

  • 身份信息
    (- -global是全局参数,意味着本机中的所有仓库都共同使用。如果不加则只适用于本仓库。)
$ git config --global user.name "用户名"
$ git config --global user.mail "邮箱"
  • 忽略特殊文件
    在git工作区的根目录下创建.gitignore文件,将要忽略的文件填进去。
    (windows下新建txt文件,另存为.gitignore即可得到.gitignore文件,并且要将.gitignore文件add,commit之后才可忽略所需文件。)
/bin/ 忽略整个bin目录
*.txt 忽略全部txt文件
......
  • 配置别名
$ git config --global alias.ad add
$ git config --global alias.cit commit 

创建仓库

  • 创建一个新的本地仓库: $ git init

  • 克隆一个远程仓库

$ git clone ssh://user@domain.com/repo.git
$ git clone http://user@domain.com/repo.git
  • 远程库(以GitHub为例,创建完即可关联远程库)
    1.创建ssh-key(ssh-key存储在用户主目录下单.ssh文件中。id_rsa文件存储私钥,id_rsa.pub存储公钥):$ ssh-keygen -t rsa -C "youremail@example.com"
    2.登陆GitHub,打开“Account settings”,“SSH Keys”页面,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。

本地修改

  • 查看本地工作目录的状态: $ git status

  • 查看修改内容: $ git diff

  • 在下次提交前将修改文件到添加到stage状态: $ git add <file>

  • 在下次提交前将全部修改文件添加到stage状态: $ git add .

  • 提交stage状态中先前保存的文件: $ git commit -m "描述信息"

  • 提交stage状态中的全部保存文件: $ git commit -a

  • 删除文件
    1.直接资源管理器删除等价于$ rm <file>
    2.如果确实需要删除,再执行:$ git rm <file>,再执行:$ git commit -m "delete <file>"
    3.如果误删且还未提交可执行:$ git checkout -- <file>回退到被删之前的状态。
    4.如果误删且已提交则可执行:$ git reset --hard head^,另版本回到上一版本从而得到误删文件。

提交历史

  • 显示所有提交历史,从新到旧: $ git log

  • 显示所有命令历史:$ git reflog

  • 显示单个文件的历史记录: $ git log -p <file>

  • 显示谁在什么时间修改了文件中的什么内容: $ git blame <file>

分支

  • 显示所有分支,包括远程分支: $ git branch -av

  • 显示本地分支: $ git branch

  • 新建分支: $ git branch <new-branch>

  • 新建一个分支并跳转到新分支: $ git branch -b <new-branch>

  • 跳转到另一分支: $ git checkout <branch>

  • 根据远程分支创建一个新的对应本地分支: $ git checkout -b <branch> <remote/branch>

  • 删除分支: $ git branch -D <branch>

  • 合并分支到当前分支:$ git merge <branch>

  • 合并分支到当前分支并添加记录:$ git merge --no--ff -m "commit" <branch>

  • 将分叉的提交变为直线:$ git rebase <branch>

  • 存储分支状态:$ git stash

  • 查看储存分支:$ git stash list

  • 恢复分支并删除stash内容:$ git stash pop

  • 恢复分支且不删除stash内容:$ git stash apply

标签

  • 为当前最新提交建立一个标签(默认为head,也可指定commit id前7位)

轻量标签
一个特定提交的引用

$ git tag <tag-name> (例:v1.0)

附注标签:(建议使用)
存储在 Git 数据库中的一个完整对象。 它们是可以被校验的。其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息。并且可以使用 GNU Privacy Guard (GPG)签名与验证。
(-a指定标签名,-m指定说明文字)

$ git tag -a <tag-name> -m "标签详细说明" (例:-a v1.0 -m "正式版第一版")
  • 显示所有标签:$ git tag
  • 显示标签说明文字:git show <tag_name>
  • 推送一个标签:$ git push origin <tag_name>
  • 推送所有未推送标签:$ git push --tags
  • 删除本地标签:$ git tag -d <tag_name>
  • 删除远程标签:$ git push origin :refs/tags/<tag_name>

更新与推送

  • 获取远程库当前配置信息:$ git remote -v
  • 显示远程库信息(github的远程库名默认为origin): $ git remote show <remote>
  • 关联远程库:$ git remote add <shortname><url>(例:$ git remote add origin git@server-name:path/repo-name.git)
  • 下载远程库某分支的所有更新并且直接合并到当前head中:$ git pull <remote><branch>
  • 第一次推送master分支的所有内容:$ git push -u origin master,以后再次推送时:$ git push origin master
  • 推送本地某分支的所有更新到远程库中:$ git push <remote> <branch>
  • 删除远程库分支:$ git branch -dr <remote/branch>

撤销

  • 丢弃掉本工作目录下的所有更改(head表示当前版本):$ git reset --hard head
  • 丢弃工作区某文件的更改:$ git checkout -- <file>
  • 丢弃暂存区的修改:$ git reset head <file>
  • 回退到上一个版本(head^^上上个版本,head~10上十个版本):$ git reset --hard head^
  • 回退到指定版本:$ git reset --hard <commit id>

Git的使用建议

  • 多多使用commit,每一次的commit都应当与修改的内容相关。比如修改两个不同的bug,则每一个bug都应该有一个相关的commit。

  • 不要commit还未完成的工作。

  • 在commit之前需要完成代码的测试工作。

  • 如何写一个好的commit呢?
    1.这一次的修改动机是什么。
    2.这次修改和之前有什么区别。

  • 多使用分支来开发新功能或者修改bug。

  • 查看帮助文档总是有没错的:" $ git help

  • 建立新仓库的步骤:

  1. $ git init //初始化仓库

  2. $ git add .(文件name) //添加文件到本地仓库

  3. $ git commit -m "first commit" //添加文件描述信息

  4. $ git remote add <shortname><url>(例:$ git remote add origin git@server-name:path/repo-name.git) //链接远程仓库,创建主分支

  5. $ git pull <remote><branch> // 把本地仓库的变化连接到远程仓库主分支

  6. $ git push -u origin master //把本地仓库的文件推送到远程仓库

参考

git-book
http://www.runoob.com/w3cnote/android-tutorial-git-repo-operate.html);
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值