Git

作者: iseerain | 来源:发表于2019-07-15 22:35 被阅读0次

    init

    git init    创建 
    

    clone

    git clone git@server-name:path/repo-name.git    克隆远程仓库到本地当前目录下
    
    git clone --depth=1 <repository> <directory>    clone远程仓库到本地directory目录下 --depth=1:深度为1
    
    git clone -b <remote-branch> --depth=1 <repository>     clone指定远程分支到本地当前目录下
    

    pull

    git pull <remote-name> <remote-branch>:<local-branch>     将远程仓库分支中的更改合到本地分支中
    
    git pull <remote-name> <remote-branch>    与当前分支合
    
    git pull --rebase <remote-name> <remote-branch>:<local-branch>   合并需要采用rebase模式
    
    git pull origin master --allow-unrelated-histories    第一次从远程拉取更新 
    

    push

    git push <remote-name> <local-branch>:<remote-branch>    推送本地分支到远程分支上
    
    git push origin master    将本地的master分支推送到origin主机的master分支。如果master不存在,则会被新建。
    
    git push <remote-name> :<remote-branch>    删除远程分支
    
    git push origin :master    如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支
    
    git push -u origin master    如果当前分支与多个主机存在追踪关系,则可以使用 -u 选项指定一个默认主机,这样后面就可以不加任何参数使用 git push 。
    
    git push origin <tag-name>    推送标签
    
    git push origin --tags    一次推送本地全部标签
    
    git push origin :<tag-name>    删除远程标签 
    
    git push origin :refs/tags/<tag-name>    删除一个远程标签(先把本地的删除 git tag -d <tag-name>)
    

    checkout

    git checkout -b <local-branch> <remote-name>/<remote-branch>    跟踪远程分支
    
    git checkout <branch>    切换分支 
    
    git checkout -b <branch>    -b 创建并切换分支 
    
    git checkout -- <file>    撤销工作区的全部修改,是文件回到最近一次 git commit 或 git add 时的状态。  
    

    branch

    git branch ([-r | -a])           查看本地分支 -r:查看远程分支 -a:查看全部分支
    
    git branch <name>    创建分支 
    
    git branch -d <name>    删除本地分支 
    
    git branch -D <name>    强行删除一个没有合并过的分支 
    
    git branch --set-upstream <local-branch> <remote-name>/<remote-branch>    创建本地分支和远程分支的链接关系 
    

    merge

    git merge <branch>    合并指定分支<branch>到当前分支 
    
    git merge --no-ff -m 'message' <branch>    合并分支,禁用Fast forward模式,创建一个新的commit。
    

    tag

    git tag    查看标签
    
    git tag <tag-name> (<commit-id>)    创建标签(指定一个commit-id) 
    
    git tag -a <tag-name> <commit-id>    后期加注标签
    
    git tag -a <tag-name> -m 'message'    指定标签信息 
    
    git tag -s <tag-name> -m 'message'    用PGP签名标签 
    
    git tag -d <tag-name>    删除标签 
    
    git show <tag-name>    查看标签信息 
    

    stash

    git stash    保存当前工作现场 
    
    git stash list    查看保存的工作现场 
    
    git stash apply    恢复工作现场,stash 内容并不删除,用 git stash drop 来删除 
    
    git stash apply stash@{0}    恢复指定的 stash 
    
    git stash pop    恢复的同时把 stash 内容也删了 
    

    reset

    HEAD: 指的是当前分支最末梢最新的一个提交,也就是版本库中该分支上的最新版本。
    
    HEAD^: 指向 HEAD 之前最近的一次提交。
    
    ORIG_HEAD: 执行 git reset 命令时,git 会把老的 HEAD 拷贝到文件 .git/ORIG_HEAD 中,在命令中可以使用 ORIG_HEAD 引用这个提交。
               执行 git pull 和 git merge 操作时,git 都会把执行操作前的 HEAD 放入 ORIG_HEAD 中,以防回滚操作。    
    
    git reset | git reset HEAD <file>    暂存区 -> 工作区
    
    git reset --hard HEAD^(commit)    退回上一个(或指定的commit)版本 
    
    git reset --hard HEAD    清除工作区和暂存区
    
    git reset --soft HEAD^    回到暂存区状态,工作区还跟 reset 之前一样,不作任何改变。
    
    git reset --merge ORIG_HEAD    避免在回滚时清除工作区
    
    如果还没 git add <file>, 使用该指令进行撤销: git checkout -- <file>    清除工作区
    
    git tag start
    git reset --keep start(commit)    保留工作区并丢弃一些之前的提交,把在 start(commit) 之后的提交清除掉,但是保持工作区不变。
    

    revert

    git revert 撤销某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销
    作为一次最新的提交。
    
    git revert HEAD     撤消了上次提交
    
    git revert HEAD^    撤消上上次(next-to-last)的提交
    

    commit

    git commit -m "message"    提交到当前分支 
    
    git commit --amend    改写提交 --amend: 修改刚才的这个提交 (HEAD commit)。
    

    other

    git add             添加到暂存区 
    
    git status          查看状态 
    
    git log             查看提交记录 
    
    git reflog          查看操作记录 
    
    git diff            查看不同 
    
    git rm <file>       删除文件 
    
    git remote (-v)     查看远程仓库(-v: 显示详细信息) 
    
    git remote add origin git@server-name:path/repo-name.git    添加远程仓库
    
    git log --graph (--pretty=oneline --abbrev-commit)    查看分支合并图 
    
    git check-ignore -v <file>    找出 .gitignore 文件里哪个规则忽略了该文件 
    
    git config —global alias.st status    配置别名 git st == git status
     
    git rebase -i    会提示你在编辑中做相关的修改,这样其实就是让你在rebase的过程来修改提交。
    

    相关文章

      网友评论

          本文标题:Git

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