Git 代码管理常用命令

1)  远程仓库相关命令

    检出仓库: git clone git://github.com/jquery/jquery.git
    查看远程仓库: git remote -v
    添加远程仓库: git remote add [name] [url]
    删除远程仓库: git remote rm [name]
    修改远程仓库: git remote set-url --push[name][newUrl]
    拉取远程仓库: git pull [remoteName] [localBranchName]
    推送远程仓库: git push [remoteName] [localBranchName]

2) 分支(branch)操作相关命令

    查看本地分支: git branch
    查看远程分支: git branch -r
    创建本地分支: git branch branchName ----注意新分支创建后不会自动切换为当前分支
    切换分支: git checkout branchName
    创建新分支并立即切换到新分支: git checkout -b branchName
    删除分支: git branch -d branchName -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
    合并分支: git merge [name] ----将名称为[name]的分支与当前分支合并
    创建远程分支(本地分支push到远程): git push origin branchName
    删除远程分支: git push origin :heads/branchName
    我从master分支创建了一个issue5560分支,做了一些修改后,使用git push origin master提交,但是显示的结果却是'Everything up-to-date',发生问题的原因是git push origin master 在没有track远程分支的本地分支中默认提交的master分支,因为master分支默认指向了origin master 分支,这里要使用git push origin issue5560:master 就可以把issue5560推送到远程的master分支了。
    如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做。

     git push origin test:master // 提交本地test分支作为远程的master分支 //好像只写这一句,远程的github就会自动创建一个test分支
     git push origin test:test // 提交本地test分支作为远程的test分支

    如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。

     git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心

3) 标签版本(tag)操作相关命令

    查看所有版本: git tag
    创建本地版本: git tag tagName
    删除本地版本: git tag -d tagName
    查看远程版本: git tag -r
    获取远程版本: git fetch origin tag tagName
    

    创建远程版本(本地版本push到远程): git push origin tagName
    删除远程版本(就是推送空数据合并到远程): git push origin :refs/tags/tagName

    显示选择的tag附注信息: git show tagName
    推送所有tag同步到远程代码库:  git push origin --tags

    创建轻量标签:git tag tagName -light  ( 解释:创建轻量标签不需要传递参数,直接指定标签名称即可。)
    创建附注标签:git tag -a tagName -m "release tagName version"
                
                解释:创建附注标签时,参数-a即annotated的缩写,指定标签类型,后附标签名。参数m指定标签说明,说明信息会保存在标签对象中。

    切换标签与切换分支命令相同:git checkout tagName
    
    创建并切换到branch_new_name分支上,并且此分支是基于当前工作分支的提交点上,会自动切换到新分支上:
    git checkout -b new_branch_name


    * push失败的原因( 参考 ):

    比如:
        remote: GitLab: You are not allowed to change existing tags on this project.
        To ssh://gitlab.spriteapp.com.cn:2208/android/bdj_mvp.git! [remote rejected] v8.0.5 (pre-receive hook declined)
        error: failed to push some refs to 'ssh://git@gitlab.spriteapp.com.cn:2208/android/bdj_mvp.git'
    
        解释:git合并分支成功,但是push失败(remote: GitLab: You are not allowed to push code to protected branches on this project.)

        原因:自己没有合并代码的权限导致的,所以接下来就是修改权限就可以了。

             一般我们作为developer,是没有master权限的,只有master才有合并代码权限。

             修改方法,联系管理员,打开gitlab ===> setting ===>修改成员角色。

             就是说分支设了保护,才推送不上去,记得在保护分支上把开发者推送勾上。

4) git stash暂存相关命令

    git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
    git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
    git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
    git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

5) git rebase 使用

    当前分支问题develop,从master拉取最新代码
    git pull --rebase origin master 或者 git rebase develop
    先将develop分支的代码checkout出来,作为工作目录
    然后将master分支从develop分支创建起的所有改变的补丁,依次打上。如果打补丁的过程没问题,rebase就搞定了
    如果打补丁的时候出现了问题,就会提示你处理冲突。处理好了,可以运行git rebase –continue继续直到完成
    如果你不想处理,你还是有两个选择,一个是放弃rebase过程(运行git rebase –abort),另一个是直接用test分支的取代当前分支的(git rebase –skip)。


6)  git branch 分支

    假设分支名称为oldName
    想要修改为 newName
    1. 本地分支重命名(还没有推送到远程)
       git branch -m oldName newName

    2. 远程分支重命名 (已经推送远程-假设本地分支和远程对应分支名称相同,注:远程分支名称  只能 先删除,后修改,最后关联 )
       a. 重命名远程分支对应的本地分支
             git branch -m oldName newName

       b. 删除远程分支
             git push --delete origin oldName

       c. 上传新命名的本地分支
             git push origin newName

       d. 把修改后的本地分支与远程分支关联
             git branch --set-upstream-to origin/newName

    3. 回滚到上一版本
       git reset --hard HEAD~1


7) Android Studio Git 修改用户名、密码、URL

    在AndroidStudio的 Terminal :
        
    git config --global user.name "用户名"

    git config --global user.email “邮件地址”

    git config --list获取所有信息

8)ssh命令参考:

   https://www.cnblogs.com/godfeer/p/12214301.html

9)Android Studio 防止编译乱码,在 安装目录下的 bin目录找到  studio64.exe.vmoptions 文件,添加内容:

-Dfile.encoding=UTF-8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值