Git语法

作者: EraJieZhang | 来源:发表于2018-12-18 17:01 被阅读0次

    一.绑定设置

    1. 设置你的名字和Email :

      git config --global user.name "Your Name" git config --global user.email "email@example.com"
      注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

    2. 创建版本库
      --创建文件夹(本本库)
      mkdir learngit --移动到这个版本库里 cd learngit
      --pwd命令用于显示当前目录。在我的Mac上,这个仓库位于/Users/michael/learngit。
      pwd 如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。 --把这个目录变成Git可以管理的仓库 git init
      Initialized empty Git repository in /Users/michael/learngit/.git/
      瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
      如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。
      --SSH测试连接远程git仓库的权限(免费版本,付费版bitbucket)
      $ ssh -T git@github.com

    二.把一个文件放到Git仓库

    --把文件添加到仓库
    $ git add readme.txt
    
    --用命令git commit告诉Git,把文件提交到仓库
    $ git commit -m "wrote a readme file"
    
    --查看修改过的文件
    $ git status
    
    --具体修改了什么
    $ git diff readme.txt
    
    --查看日志(全部信息)
    $ git log
    
    --查看日志(简版只有commit_id  和日志)
    $ git log --pretty=oneline
    
    --回退一个版本
    $ git reset --hard HEAD^
    
    --查看文件内容
    $ cat readme.txt
    
    --跳转到指定的版本(commit_id前几位就行)
    $ git reset --hard 1094a
    
    --输出每次操作的记录id
    $ git reflog
    
    (每次修改后都需要add,如果不add就不会被提交上去)
    
    --放弃缓存区里已经add但未commit的文件
    $ git checkout -- readme.txt
    
    --删除文件
    $ rm test.txt
    $ git rm test.txt
    $ git commit -m "remove test.txt"
    (rm文件后需要git rm 删除文件,在提交)
    

    三.远程仓库

    (在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步)
    
    --创建SSH Key(邮箱要和github上的邮箱一样)
    $ ssh-keygen -t rsa -C "youremail@example.com"
    (把id_rsa.pub里的公钥复制到github上的ssh密钥里即可,之后的用户名密码什么的直接回车就行,其中有一个确认的过程 “y/n” 选yes )
    
    --添加远程库
    $ git remote add origin git@github.com:你的github账号/项目名.git
    
    --把本地库的所有内容推送到远程库上(第一次需要-u,master是默认的分支也就是主分支)
    $ git push -u origin master
    
    --以后提交到远程库就不需要-u了
    $ git push origin master
    
    --从远程库克隆
    $ git clone git@github.com:你的github账号/你的项目名.git
    
    --输出查看本机的sshkey  如果没有使用 ssh-keygen生成在查看一下
    $ cat ~/.ssh/id_rsa.pub
    

    四.分支管理

    --创建分支,并切换(最后面是分支名)
    $ git checkout -b erajiezhang
        
    --创建分支(最后面是分支名)
    $ git branch erajiezhang
    
    --切换分支(最后面是分支名)
    $ git checkout erajiezhang
    
    --查看当前分支
    $ git branch
    
    --删除分支(最后面是分支名)
    $ git branch -d erajiezhang
    
    --合并某分支到当前分支(最后面是分支名)
    & git merge <name>
    
    --禁用Fast forward合并分支(加上-m参数,把commit描述写进去)
    $ git merge --no-ff -m "merge with no-ff" dev
    
    --存储当前分支
    $ git stash
    
    --查看存储分支列表
    $ git stash list
    
    --恢复存储的分支
    $ git stash apply
    
    --删除存储的分支
    $ git stash drop
    
    --恢复的同时把stash内容也删了  
    $ git stash pop 
    
    --删除还没有合并的分支
    $ git branch -D feature-vulcan
    
    --查看远程分支
    $ git remote
    
    --查看远程分支的详细信息
    $ git remote -v
    
    --抓取远程的新提交
    $ git pull
    
    --在本地创建和远程分支对应的分支
    $ git checkout -b branch-name origin/branch-name
    
    --建立本地分支和远程分支的关联
    $ git branch --set-upstream branch-name origin/branch-name
    
    --把本地未push的分叉提交历史整理成直线
    $ git rebase
    

    五.标签管理

    --创建标签
    $ git tag v1.0
    
    --查看所有标签
    $ git tag
    
    --对之前的提交创建tag
    $ git tag v0.9 f52c633
    
    --查看标签信息
    $ git show <tagname>
    
    --创建带有说明的标签,用-a指定标签名,-m指定说明文字
    $ git tag -a v0.1 -m "version 0.1 released" 1094adb
    
    --删除标签
    $ git tag -d v0.1
    
    --推送标签到远程仓库
    $ git push origin <tagname>
    
    --一次性推送全部尚未推送到远程的本地标签
    $ git push origin --tags
    
    --删除远程仓库的标签(需要现在本地删除)
    $ git push origin :refs/tags/v0.9
    

    六.自定义Git

    --让Git显示颜色
    $ git config --global color.ui true
    
    忽略某些文件时,需要编写.gitignore
    
    --强制添加到Git
    $ git add -f App.class
    
    --检查gitignore文件
    $ git check-ignore -v App.class
    
    --配置别名
    $ git config --global alias.st status
    $ git config --global alias.co checkout
    $ git config --global alias.ci commit
    $ git config --global alias.br branch
    $ git config --global alias.unstage 'reset HEAD'(把暂存区的修改撤销掉(unstage),重新放回工作区)
    $ git config --global alias.last 'log -1'(让其显示最后一次提交信息)
    $ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
    
    --查看别名
    $ cat .gitconfig
    

    相关文章

      网友评论

          本文标题:Git语法

          本文链接:https://www.haomeiwen.com/subject/mqvlkqtx.html