美文网首页
git常用命令

git常用命令

作者: Snail127 | 来源:发表于2018-07-23 23:17 被阅读0次

    git 常用命令
    git help

    全局设置

    git config --global user.name "John Doe"
    git config --global user.email johndoe@example.com

    Branch related

    1.创建分支

    • 根据当前分支创建新分支
      git branch newBranchName
    • 创建并切换分支
      git checkout -b branchName
    • 根据其他远程分支创建新分支
      git branch newBranchName origin/ohterBranchName
    • 根据其他远程分支创建新分支并切换分支
      git checkout -b newBranchName origin/otherBranchNam
    • 重命名分支
      git branch -m oldBranchName newBranchName

    2. 提交分支

    • 提交分支到远程库
      git push origin branchName
    • 是否提交成功:查看远程端所有分支
      git branch -r
    • 查看本地分支
      git branch
    • 查看本地和远程分支
      git branch -a

    3. 删除分支

    • 删除本地未提交分支
      git branch -d branchName
    • 删除远程分支
      git branch -r -d origin/branchName
      git push origin :branchName冒号前有空格
    • 批量删除本地分支
      git branch -a | grep -v -E 'master|develop' | xargs git branch -D
    • 批量删除远程分支
      git branch -r| grep -v -E 'master|develop' | sed 's/origin\///g' | xargs -I {} git push origin :{}

    如果有些分支无法删除,是因为远程分支的缓存问题,可以使用git remote prune

    • 批量删除本地tag
      git tag | xargs -I {} git tag -d {}
    • 批量删除远程tag
      git tag | xargs -I {} git push origin :refs/tags/{}
      Ps:用到命令说明
      grep -v -E 排除master 和 develop
      -v 排除
      -E 使用正则表达式
      xargs 将前面的值作为参数传入 git branch -D 后面
      -I {} 使用占位符 来构造 后面的命令
      强制删除把-d 换成-D

    4. 切换分支

    git checkout branchName
    切换分支时需要将修改过的文件全部提交

    5. 合并分支


    • 将开发中的分支(branchName)合并到主分支(branchName)
    • 首先切换到主分支git checkout origin/branchName
    • 合并git merge newBranchName

    • 将开发中的分支(branchName)合并到主分支(branchName),不保留日志
    • 首先切换到主分支git checkout origin/branchName
    • 合并git rebase newBranchName

    • 保存之前的分支历史合并git merge -no -ff newBranchName

    6. 撤销

    • 撤销最近一次提交
      git reset HEAD^
      git reset --soft HEAD^ 撤销最近一次本地提交,本地修改代码还在

    7. 查看各分支最后一次提交

    git branch -v

    8. 查看列出详细信息,在每一个名字后面列出其远程url

    git remote -v

    file related

    1. git stash命令

    git stash命令用于将更改储藏在脏工作目录中(临时存储修改过的全部文件)
    git stash pop取出最后存储的全部修改过的文件
    git stash list列索储藏的修改
    git stash show进行检查
    git stash apply stash@{1} 恢复某一次的压栈
    git stash drop stash@{0}移除存储

    2. git clone

    git clone <版本库的网址>将存储库克隆到本地仓库
    git clone <版本库的网址> <本地目录名>指定克隆的目录
    git remote add upstream fork.url添加fork的源路径,方便同步源代码

    3. Git init/git add

    git init 初始化一个工作区
    git add fieName添加文件到暂存区
    git add .将文件的修改,文件的新建,添加到暂存区
    git add -u将文件的修改、文件的删除,添加到暂存区
    git add -A将文件的修改,文件的删除,文件的新建,添加到暂存区


    远程仓库地址操作

    git remote add origin git@github.com:athc/ath_auth.git将本地仓库和远程仓库连接起来
    git remote set-url origin git@github.com:athc/ath-cloud.git修改远程仓库地址
    或分两步先删除
    git remote rm origin先删除远程仓库地址
    git remote add origin git@github.com:athc/ath-cloud.git添加远程仓库地址


    4. git commit#git reset#git rm#git mv

    git commit -m 'message'提交添加的文件
    git commit -a -m 'message' 相当于git add -A +git commit
    git reset将当前HEAD 复位到指定状态,一般用于撤销操作
    git reset fileNamegit reset HEAD fileName回退文件
    git reset HEAD^回退版本,一个^表示一个版本,可以多个,另外也可以使用git reset HEAD~n这种形式
    git reset commit-id回退某一个commit-ID的提交
    Git rm命令用于从工作区和索引中删除文件
    git rm Documentation/\*.txt从documentation目录及其任何子目录下的索引中删除所有.txt文件
    Git mv命令用于移动或重命名文件,目录或符号链接
    git text.txt mydir把text.txt 移动到mydir目录,这条命令相当于以下执行

    $ mv test.txt mydir/
    $ git rm test.txt
    $ git add mydir
    

    5. git status#git log #git show#git diff

    git status命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到
    git status -uno只列出所有已经被git管理的切被修改但是没提交的文件
    git log命令用于显示提交日志信息
    git log -3查看最近三次提交日志
    git log查看提交日志
    git log --no-merges显示提交记录但是跳过合并的
    git show命令用于显示各种类型的对象
    git diff命令用于显示提交和工作树等之间的更改。此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容
    git checkout -b newBrach origin/master从远程分支取回到本地分支
    如:
    git checkout -b dev/1.5.4 origin/dev/1.5.4从远程dev/1.5.4分支取得到本地分支/dev/1.5.4

    5. Git fetch #git pull # git merge

    git fetch命令用于从另一个存储库下载对象和引用
    git fetch可以同步远程分支信息
    git pull命令用于从另一个存储库或本地分支获取并集成(整合),在默认模式下,git pullgit fetch后跟git merge FETCH_HEAD的缩写。git pull命令用于从另一个存储库或本地分支获取并集成(整合)。git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并,它的完整格式稍稍有点复杂
    git push origin localBranchName 将本地分支push到远程分支

    Tag related

    git tag 查看当前分支标签
    git tag tagName 打标签
    git tag tagname commitId 给某提交打标签
    git show tagName查看相应标签的版本信息,并连同显示打标签时的提交对象
    git push origin tagName 推送tag到远程
    git push origin --tags推送全部新建标签
    git tag -d tagName删除标签
    git push origin :refs/tags/tagName 删除远程标签

    6版本回退

    注意回退可能丢失代码,需要先做备份
    git reflog 查看历史提交列表,找到想要回退的版本id
    git reset --hard commitId 回退的某个提交的版本
    git push origin {branch}提交

    git revert 708ce7b -m 1
    revert后面的参数:708ce7b指的是本次合并后的版本号,-m参数表示要回滚到哪个父亲,c538e77 a395a29分别代表父亲1和父亲2,1代码master,2代表你的本次的上一个版本。

    迁库

    重命名当前操作的origin
    git remote rename {当前origin名字} {自定义origin名字}
    ps: git remote rename origin old-origin
    为当前操作的origin 添加远程仓库地址
    git remote add origin git@gitlab.lomocoin.com:webit/wallet.git
    提交当前分支
    git push origin {branch}

    git 提交message规范

    feat:新功能(feature)
    fix:修补bug
    docs:文档(documentation)
    style: 格式(不影响代码运行的变动)
    refactor:重构(即不是新增功能,也不是修改bug的代码变动)
    test:增加测试
    chore:构建过程或辅助工具的变动

    相关文章

      网友评论

          本文标题:git常用命令

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