GIT操作命令

查看远程分支 

    git branch -r

查看本地分支

git branch 

删除branchname分支

  git branch -d branchname

删除远程branchname分支   

git branch -d -r branchname 

创建分支

   git branch test 

切换分支

    git checkout test 

把分支推到远程分支test

   git push origin test

重命名分支

 git branch -m oldbranch newbranch 

查看commmit历史记录

git log

回退版本

1.只执行了 add commit 但没有 push
        git reset [--soft | --mixed | --hard] HEAD~1

        --mixed:保留源码,只是将git commit和index 信息回退到了某个版本,相当于把git add <fileName> 和 git commit -m '' 同时给撤销了(git reset --mixed  等价于  git reset)
        
        --soft: 保留源码,只回退到commit 信息到某个版本.不涉及index的回退,相当于把   git commit -m ''   给撤销了,如果还需要提交,直接commit即可

        --hard: 源码也会回退到某个版本,commit和index 都回回退到某个版本.(注意,这种方式是改变本地代码仓库源码)
        
        * git reset --hard HEAD~3      将最新的3次提交全部重置,就像没有提交过一样

        *****当然有人在push代码以后,也使用 reset --hard <commit...> 回退代码到某个版本之前,但是这样会有一个问题,你线上的代码没有变,线上commit,index都没有变,当你把本地代码修改完提交的时候你会发现权是冲突,所以,这种情况你要使用下面的方式*****

2.针对做了 push 操作       
     eg: git revert [commit-id]
       * git revert HEAD              撤销前一次 commit
       * git revert HEAD^             撤销前前一次 commit
       * git revert commit           (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。

更新时强制覆盖本地分支( 以下二个命令按顺序执行完)

git fetch --all    //只是下载代码到本地,不进行合并操作
git reset --hard origin/分支名如master    //把HEAD指向最新下载的版本

本地分支(maste)强制覆盖远程分支(master)

  git push --force [远程名] [本地分支名]:[远程分支名]

分支合并(快速合并)

切换的master分支:git checkout master
执行合并操作:git merge develop(合并指定分支到当前分支)

分支合并(普通合并)

     切换的master分支:git checkout master
     执行合并操作:git merge develop --no-ff(--no-ff表标禁用快速合并)
     
************分支合并分为快速合并与普通合并两种模式,普通合并,合并后的历史有分支记录,能看出来曾经做过合并,而快速合并就看不出来曾经做过合并************
        
    #主分支 master
    #开发分支 develop
    #功能分支 feature
    #预发布分支  release
    #bug 分支 fixbug
    #其它分支 other 

检查已有的配置信息

 git config --list

将文件状态还原为未暂存状态

 git rm --cached fileName

文件的三种状态

    1.Untracked files                    (未加入待提交)
    2.Changes to be committed            (已加入待提交)
    3.Changes not staged for commit    (文件已修改,还没有入入暂存区)

自动记住密码

  git config --global credential.helper store

初始化本地仓库

    git remote add origin https://git.oschina.net/kk/me.git
    git pull origin master
    git push origin master

URL保存用户名密码

   http://dear_jiang:password@git.coding.net/username/weixin.git

配置简写命令 

在.gitconfig 文件中加入以下代码:
        [alias]
            co = checkout
            ci = commit
            st = status
            pl = pull
            ps = push
            dt = difftool
            l = log --stat
            cp = cherry-pick
            ca = commit -a
            b = branch
            ll =  log --pretty=oneline
在目录下右键,选择Git Bash,进入命令行。
键入touch .gitignore便可以在目录下生成一个空的.gitignore文件。
使用vim命令编辑.gitignore文件,添加忽略规则。

git stash暂存的操作

#查看当前状态
git status 
#如果有修改,添加修改文件
git add .
#暂存操作
git stash save '本次暂存的标识名字'

查看当前暂存的记录

#查看记录
git stash list

恢复暂存的工作

1.pop命令恢复,恢复后,暂存区域会删除当前的记录’
#恢复指定的暂存工作, 暂存记录保存在list内,需要通过list索引index取出恢复
git stash pop stash@{index}

2.apply命令恢复,恢复后,暂存区域会保留当前的记录’
#恢复指定的暂存工作, 暂存记录保存在list内,需要通过list索引index取出恢复
git stash apply stash@{index}

删除暂存

#删除某个暂存, 暂存记录保存在list内,需要通过list索引index取出恢复
git stash drop stash@{index}
#删除全部暂存
git stash clear

提交常用命令

git status
git stash
git pull --rebase
git stash pop
git commit -a ""

查看项目的分支们(包括本地和远程) 

$ git branch -a     例如,$ git branch -a 

删除本地分支

$ git branch -d <BranchName>

pull操作

1、将远程指定分支 拉取到 本地指定分支上:

    git pull origin <远程分支名>:<本地分支名>

2、将远程指定分支 拉取到 本地当前分支上:

    git pull origin <远程分支名>

3、将与本地当前分支同名的远程分支 拉取到 本地当前分支上(需先关联远程分支)

    git pull origin

在克隆远程项目的时候,本地分支会自动与远程仓库建立追踪关系,可以使用默认的origin来替代远程仓库名,
所以,我常用的命令就是 git pull origin <远程仓库名>,操作简单,安全可控。

push操作

1、将本地当前分支 推送到 远程指定分支上(注意:pull是远程在前本地在后,push相反):

git push origin <本地分支名>:<远程分支名>

2、将本地当前分支 推送到 与本地当前分支同名的远程分支上(注意:pull是远程在前本地在后,push相反):

git push origin <本地分支名>

3、将本地当前分支 推送到 与本地当前分支同名的远程分支上(需先关联远程分支)

git push origin

同样的,推荐使用第2种方式,git push origin <远程同名分支名>

附:
// 将本地分支与远程同名分支相关联

git push --set-upstream origin <本地分支名>

拉取远程指定分支到本地

$ git clone -b dev https://git.coding.net/jiangxuecheng/test.git

撤销本地修改

$ git reset --hard

 

查看远程仓库,以及与本地仓库的关系

$ git remote show origin

GIT忽略无效解决办法

有时候发现git提交了一些我们不需要提交的内容,这时候第一反应是加个忽略:

https://github.com/github/gitignore

宇宙神器VS:

https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

结果忽略列表加好了,操作却没有达到预期的效果,原因是:.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的;所以加好后,要对本地缓存进行处理,并且重新提交移除远方的git内容。git操作命令如下:

1 git rm -r --cached .
2 git add .
3 git commit -a -m"update .gitignore"

强制覆盖远分支
 

git push origin develop  -f

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值