git 常用命令

作者: jamalping | 来源:发表于2017-09-25 14:25 被阅读9次

    配置

    git config --global user.name [name]

    git config --global user.email [emailUrl]

    配置name和email

    git config --list

    查看所有配置

    远程仓库相关命令

    git clone [remoteUrl]远程仓库地址

    检出(克隆)仓库,地址可以是https的方式也可以是ssh的方式

    git remote

    查看已经存在的远程分支

    git remote -v | --verbose

    列出详细信息,在每个名字后面列出其远程url
    ** git remote add [远程仓库名] url ** 添加一个新的远程仓库,可以指定一个简单的名字。eg:
    git remote add origin git://github.com/gitName.git

    git remote add [name] [url]

    添加远程仓库

    git remote rm [name]

    删除远程仓库
    git pull [remoteName] [localBranchName]
    拉取远程仓库

    git init --bare

    创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到下面的错误(”This operation must be run in a work tree”)

    git init

    初始化一个仓库

    分支相关命令

    git branch

    查看本地分支,星号(*)表示当前所在的分支

    git branch -r

    查看远程分支

    git branch -a

    查看所有分支

    git branch [name]

    创建本地分支,注意:新分支创建后不会自动切换为当前分支

    git checkout [name]

    切换分支

    git checkout -b [name]

    创建分支,并立即切换到新的分支

    git branch -d [name]

    删除分支

    git merge [name]

    合并分支,将名称为[name]的分支与当前分支合并

    git rebase [name1] [name2]

    衍合分支,将name1分支衍合到name2分支上。

    暂存(stash) 相关命令

    git stash

    保存当前工作区和暂存区的修改

    git stash save -a "暂存描述信息"

    网上很多很多资料都没有加 -a 这个option选项,我想他们的代码开发可能都是在原代码上进行修改吧。而对于在项目里加入了代码新文件的开发来说,-a选项才会将新加入的代码文件同时放入暂存区。

    git stash list

    查看已暂存的列表

    git stash pop [--index] [<stash>] 恢复

    --index: 参数:不仅恢复工作区,还恢复暂存区。
    <stash>: 指定恢复某一个具体进度。如果没有这个参数,默认恢复最新进度

    eg:

    git stash pop --index stash@{1}

    git stash pop stash@{id或者编号}

    将指定编号的暂存应用(恢复)到工作区,并把这条暂存从暂存列表中移除

    git stash drop [<stash>]

    删除某一个stash,默认删除最新的进度

    git stash clear

    将所有stash清除

    git stash popgit stash apply的区别

    git stash pop stash@{id} 命令会在执行后将对应的stash id 从stash list里删除,而git stash apply stash@{id} 命令则会继续保存stash id

    tag 相关命令

    git tag

    查看标签

    git tag [name]

    创建标签

    git tag -d [name]

    删除标签

    git push origin [name]

    本地标签push到远程

    git push origin :refs/tags/[name]

    删除远程标签

    git pull origin --tags

    合并远程仓库的tag到本地

    忽略文件和文件夹

    在仓库目录下创建名称为.gitignore的文件,写入需要忽略的文件夹名或文件名,每个元素占一行即可

    文件的生命周期

    git add .

    将工作时所有的变化提交到暂存区,包括文件内容修改以及新文件,但不包括删除文件

    git add -u

    u: update、仅监控已经跟踪(被add)的文件,不会提交新文件

    git add -a

    a: all、是上面两个功能的合集

    git checkout [filePath]

    撤销修改

    git reset HEAD [filePath]

    撤销暂存

    git commit -m "提交信息"

    将暂存区的修改提交到本地库

    git reset --soft HEAD^

    撤销本次提交

    git reset --hard [commitId]

    工作区和暂存区都回滚

    git reset --soft [commitId]

    将高于指定提交的内容回退到暂存区域,只需重新commit

    git reset --mixed [commitId]

    mixed为默认,将高于指定提交的内容回退到工作区域,需重新add、commit

    git rm --cache [filePath]

    删除暂存区或分支上的文件,不删除工作区的这个文件,只是删除版本控制
    git rm [filePath] 将文件从工作区,暂存区,分支上删除

    git pull

    git pull = git fetch + git merge 
    git fetch:把服务器的commit取回到本地
    git merge: 把从服务器取回的代码合并到本地
    

    git rebase

    把本地的修改先暂存起来,然后将服务器的代码应用到本地,再将暂存提交应用

    1、git rebase #合并代码
    2、出现冲突就解决冲突
    3、git add . 重新添加
    4、git rebase --continue #应用补丁
    
    git rebase --abort #回滚到合并的状态
    
    注意事项:
    可直接使用 
    'git pull --rebase'
    也可以通过全局配置 git pull
    'git config brach.[分支的名字].rebase  true'
    

    git log --graph

    查看各个branch之间的关系图

    分支合并:git rebase [branch a] [branch b] : 将分支a衍和到分支b上,有冲突就解决冲突。

    git diff

    不加参数,即默认比较工作区和暂存区。

    git diff --cached [<path>...]

    比较暂存区与最新本地版本库(本地库中最近一次commit的内容)

    git diff HEAD [<path>...]

    比较工作区与最新本地版本库.如果HEAD指向的是master分支,那么HEAD还可以换成master

    git diff commit-id [<path>...]

    比较工作区与指定commit-id的差异

    git diff --cached [<commit-id>] [<path>...]

    比较暂存区与指定commit-id的差异

    git diff [<commit-id>] [<commit-id>]

    比较两个commit-id之间的差异

    其他

    git config --list

    查看所有用户

    git commit -v

    当你用-v参数的时候可以看commit的差异

    git log

    看你commit的日志

    git diff

    查看尚未暂存的更新

    git blame [filePath]

    查看该文件,每一行对应的作者

    git cherry-pick [commit id]

    合并某次,或某几次提交,多个commitID之间用空格隔开

    相关文章

      网友评论

        本文标题:git 常用命令

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