美文网首页
Git命令使用总结

Git命令使用总结

作者: 任振铭 | 来源:发表于2018-04-16 14:05 被阅读34次
    1.在GitHub上创建了一个新项目,如何将本地的一个工程上传上去
    1) copy github项目地址
    2) 在android studio中打开terminal命令行,执行命令将本项目所有代码添加
    git add *
    3)执行命令提交
    git commit -m "描述信息" 
    4)执行命令将本地代码和远端路径绑定
    git remote add origin https://github.com/renzhenming/ArRemote.git
    5)执行命令提交代码
    git push origin master
    
    2.创建分支
    git branch [branch name]
    
    3.从git地址clone
    git clone git@github.com:FBing/design-patterns.git     git@github.com:FBing/design-patterns.git是项目地址
    
    4.查看当前所在分支
    git branch 比如当前在master分支,那么会显示*master
    
    5.查看远程分支
    git branch -r
    
    6.查看所有分支,包括本地和远程
    git branch -a
    
    7.切换到另一分支
    git checkout [branch name]
    
    8.创建分支的同时切换到该分支上
    git checkout -b [branch name]
    
    这一命令的效果相当于以下两步操作:
    git branch [branch name]
    git checkout [branch name]
    
    9.将新分支推送到github
    git push origin [branch name]
    
    10.删除本地分支
    git branch -d [branch name]
    
    11.删除github远程分支
    git push origin :[branch name] (冒号需要紧挨着分支名,不能有空格)
    
    12.git将代码提交到远程分支非主分支

    一个仓库可以包含多个分支,有一个默认的主分支:master
    若想提交代码至远程仓库的某个分支(非主分支)
    先查看下本地分支以及远程分支:git branch -a

    image 由本地分支(非主分支master)提交至远程分支,新建一个本地分支,并切换到此分支:Git branch-b temp image 如果已有本地分支可直接切换:git checkout [name] image

    接下来三步走:

    git add .
    git commit -a -m 'xxxxx' //这里的-m后边是提交代码的描述信息

    git push origin sunmaoyu //git push origin master的意思就是上传本地当前分支代码到master分支。git push是上传本地所有分支代码到远程对应的分支上。 image image image

    · git add -A 提交所有变化
    · git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
    · git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

    13. git add .之后,取消add状态
    git reset HEAD <file> file为完整路径
    可以通过git status 获取到
    
    14.修改代码后如何尚未add的时候取消所有的修改
    git checkout -- <file>
    file为完整路径
    可以通过git status 获取到
    
    15.合并分支代码
    1、进入要合并的分支(如开发分支合并到master,则进入master目录)
    git pull
    2、查看所有分支是否都pull下来了
    git branch -a
    3、使用merge合并开发分支
    git merge 分支名
    4、查看合并之后的状态
    git status 
    5、有冲突的话,通过IDE解决冲突;(没有冲突的文件已经是commit状态了)
    6、解决冲突之后,将冲突文件提交暂存区
    git add 冲突文件
    7、提交merge之后的结果
    git commit 
    如果不是使用git commit -m "备注" ,那么git会自动将合并的结果作为备注,提交本地仓库;
    8、本地仓库代码提交远程仓库(没有冲突,merge之后直接push)
    git push
    git将分支合并到分支,将master合并到分支的操作步骤是一样的;
    
    16.查看远程服务器地址
    git remote -v
    
    17.列出当前仓库的所有tag
    git tag
    
    18.创建tag,附注tag(v1.2是tag名称,-m后是注释信息)
    git tag v1.2 -m "1.2版本的tag"
    
    19.切换到某一个tag(例如:git checkout v1.2)
    git checkout [tagname]
    
    20.查看标签信息(可以看到-m后的注释信息)
    git show v1.2
    
    21.删除标签(打错标签需要修改的时候,需要先删除,再重新打新的)
    git tag -d v1.2
    
    22.提交本地tag到git服务器(通常的git push不会将标签对象提交到git服务器,需要进行显式的操作)
    git push origin v1.2
    
    23.提交所有本地标签到git服务器
    git push origin --tags
    
    24.在最后一次commit上 打标签
    git tag -a "v0.2" c98c186ebb381005b495f6f1f2a65dc72195ad9d -m 'v0.2'
    
    23.提交所有本地标签到git服务器
    git push origin --tags
    
    24.本地创建新分支后上传到服务器同时创建服务器新分支
    1.git branch 新分支名                创建本地新分支
    2.git checkout 新分支名            切换到这个新创建的分支上,此时,原来的代码都在这个新分支上
    3.git push origin 新分支名:服务器分支名(新创建的原来不存在的)        这样就把代码上传到了服务器上一个新的分支中
    
    25.类似操作git log 之后如何退出状态的方法

    git log 进入了这种状态

    。。。
    Date:   Thu Aug 10 11:18:48 2017 +0800
    
        testfight 3105
    :
    

    苹果电脑按W Q键可退出

    使用中发生的一些问题
    Can't update: no tracked branch

    服务器创建了新分支,本地创建并checkout之后更新代码,提示如下,表明没有建立连接,所以只需要按提示输入命令

    git branch --set-upstream v4.2 origin/v4.2
    

    可能会提示

     The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-toBranch v4.2 set up to track remote branch v4.2 from origin.
    

    不用管它,已经可以更新代码了

    异常:Can't update: no tracked branch
            No tracked branch configured for branch v4.2.
    To make 
            your branch track a remote branch call, for example,
    git 
            branch --set-upstream v4.2 origin/v4.2
    
    Git(some untracked working tree files would be overwritten by merge ,Please move or remove them before you can merge. Aborting)
    发生这一问题时如果需要被move的文件是android studio自动生成的,这时不能直接在android studio里删除文件,因为你删除后会再次生成,pull或者update的结果是仍有这一错误解决的办法是关闭android studio 进入需要被删除的文件夹中将文件删掉,然后直接在命令行中git pull ,这样就
    可以把文件pull下来注意在pull之前不可以打开android studio,防止再次自动生成
    
    26.撤销commit soft reset 和 hard reset

    commit到本地后,如过需要撤销这次commit可以这样执行
    先使用git log 查看 commit日志

        commit 422bc088a7d6c5429f1d0760d008d86c505f4abe  
        Author: zhyq0826 <zhyq0826@gmail.com>  
        Date:   Tue Sep 4 18:19:23 2012 +0800  
          
            删除最近搜索数目限制  
          
        commit 8da0fd772c3acabd6e21e85287bdcfcfe8e74c85  
        Merge: 461ac36 0283074  
        Author: zhyq0826 <zhyq0826@gmail.com>  
        Date:   Tue Sep 4 18:16:09 2012 +0800  
    

    找到需要回退的那次commit的 哈希值,

    git reset --hard commit_id 
    

    这样操作的结果是提交到本地的代码会消失,同样工程中的代码也会撤销,相当于完全回到了上一个节点
    如果仅仅想去掉本地提交而不影响工程中的代码,可以这样

    git reset --soft commit_id 
    

    两者的区别如下
    git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
    git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

    27.撤销push到远端的代码

    在使用git时,push到远端后发现commit了多余的文件,或者希望能够回退到以前的版本。
    先在本地回退到相应的版本:

    git reset --hard <版本号>
    // 注意使用 --hard 参数会抛弃当前工作区的修改
    // 使用 --soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提交
    

    如果此时使用命令:

    git push origin <分支名>
    

    会提示本地的版本落后于远端的版本


    image

    为了覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本,需要加上参数--force

    git push origin <分支名> --force
    
    28.命令合并分支代码

    合并步骤:
    1、进入要合并的分支(如开发分支合并到master,则进入master目录)
    git pull
    2、查看所有分支是否都pull下来了
    git branch -a
    3、使用merge合并开发分支
    git merge 分支名
    4、查看合并之后的状态
    git status
    5、有冲突的话,通过IDE解决冲突;(没有冲突的文件已经是commit状态了)
    6、解决冲突之后,将冲突文件提交暂存区
    git add 冲突文件
    7、提交merge之后的结果
    git commit
    如果不是使用git commit -m "备注" ,那么git会自动将合并的结果作为备注,提交本地仓库;
    8、本地仓库代码提交远程仓库(没有冲突,merge之后直接push)
    git push
    git将分支合并到分支,将master合并到分支的操作步骤是一样的;

    29. Android Studio 项目取消 GitHub关联

    有时候和github关联的时候,我们执行了git remote add origin http://xxxx将本地仓库和远程地址关联了起来,但是发现这个地址不是我们想要的地址,这个时候再重新git remote add origin http://yyyy,会提示

    fatal: remote origin already exists.
    

    正确的操作步骤应该是
    1、先删除远程 Git 仓库
    git remote rm origin
    2、再添加远程 Git 仓库
    git remote add origin http://xxxx

    30.git stash命令

    本地做了修改之后,如果又突然需要update代码,但是由于本地的修改并不完整,你还不想commit,这时可以使用stash命令,这个命令会先将你的修改保存,执行之后本地代码会恢复到上一次commit的状态

    git stash
    

    然后update服务器代码,更新完成之后执行再执行stash恢复刚刚保存的代码

    git stash pop
    

    此时你会发现,原本你在本地修改的代码已经又恢复了,并且也已经完成了和服务器的同步

    31.git push origin与git push -u origin master的区别
    
    $ git push origin
    
    上面命令表示,将当前分支推送到origin主机的对应分支。 
    
    如果当前分支只有一个追踪分支,那么主机名都可以省略。 
    
    $ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项
    会指定一个默认主机,这样后面就可以不加任何参数使用git push。
    
    $ git push -u origin master 上面命令将本地的master分支推送到origin主
    机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。
    
     不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此
    外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。
    Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方
    式。
    
    

    相关文章

      网友评论

          本文标题:Git命令使用总结

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