git工具的基本使用

git常用的基本命令,以及解决部分代码问题的一些基本步骤。

一、初始化本地git仓库

git init

二、建立与远程仓库的联系

git remote add origin (仓库地址)

三、删除关联的origin的远程库

git remote rm origin 

四、查看关联的远程分支

git remote -v

五、克隆代码(-b/-branch+分支名称 是克隆的是指定分支,无则克隆master分支)

git clone [-b/-branch] [分支名称] (仓库地址)

六、检出(切换)到本地分支(-b 表示新建分支并切换)(clone默认是在本地主分支)

git checkout [-b] (分支)

git branch -d (分支)   删除分支

七、分支基本操作命令

        1、 查看本地当前的分支

                git branch  列出本地分支

                git branch  -r 列出远程分支

                git branch  -a 列出本地和远程分支

                git branch  -vv 列出本地和远程分支的对应关系

        2、拉取分支

                git fetch origin       将某个远程主机的更新全部取回本地

                git merge (本地分支) 用于在git fetch 之后合并到本地分支上  

                git fetch origin (分支名称)      取回特定分支的更新              

        3、Pull下拉代码

        说明: git pull命令相当于git fetch+ git merge命令。git fetch用于获取远程 某个仓库的某个分支,然后git merge会将拉取的分支与本地分支 进行合并

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

         [仓库地址] [分支] 可写可不写,不写默认当前分支自动与唯一一个追踪分支进行合并

                git pull [仓库地址] [分支]   

        2. 将远程指定分支 拉取到 本地指定分支上

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

       3.  将远程指定分支 拉取到 本地当前分支上

                git pull origin <远程分支名>

        4、push 提交到远程分支

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

         [仓库地址] [分支] 可写可不写,不写默认当前分支自动与唯一一个追踪分支进行合并

                git push 

                git push  [仓库地址] [分支]

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

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

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

                git push origin <本地分支名>

        5、 git diff 查看不同命令

        1. 查看不同

                  git diff 

        2. 这种是比较工作区和暂存区

                git diff filename 

        3. 比较暂存区与最新本地版本库

                git diff --cached  filename

        4. 比较工作区和最新版本

                git diff HEAD filename

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

                git diff commit-id  filename

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

                git diff --cached commit-id  filename

        7. 比较两个 commit -id 的差异

                git diff commit-id commit-id

        6、将本地分支与远程同名分支相关联

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

                简写方式:git push -u origin/<本地分支名>

        7、隐藏当前工作空间改动代码,切换分支,防止直接切换分支时修改的代码丢失

        隐藏工作空间改动的代码

                git stash

        切换回来恢复隐藏的代码

                git stash pop

        8、回滚commit 

        先查询commit几次

        git status 

        恢复到commit次数之前

        git reset --soft HEAD~(次数)

        注意:soft是不删除工作空间代码,撤销commit,不撤销add

                  mixed是不删除工作空间,撤销commit并也撤销add

                  hard是删除工作空间代码,撤销commit和add

                  keep是删除工作空间代码,不撤销commit和add

        9、终止merge操作

                git merge --abort

八、在本地解决冲突的基本步骤(仅供参考)

1.先将本地修改存储起来 git stash

使用git stash命令,这样本地的所有修改就都被暂时存储起来 。其中stash@{0}就是刚才保存的标记。后续可以通过此标记访问。

2.再次拉取代码git pull

3.还原暂存的内容git stash pop stash@{0}

4.解决冲突

在存在冲突的文件中,Updated upstream 和=====之间的内容为拉取下来的代码,=====和stashed changes之间的内容就为本地修改的代码。解决完成之后,就可以正常的提交了。

5.删除stash

使用git stash drop stash@{0}命令,如果不加stash编号,默认的就是删除最新的,即编号为0的。或者git stash clear命令,清除所有stash

九、分支回滚步骤

常用用于分支误提交合并或想回滚到指定的提交时

1、git reflog 先看到提交的代码的id,

2、git reset --hard [id]      id是你要回退的代码的id

3、本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支

        回退远程分支(本地强制推送到远程分支)

        git push -f origin  <分支名称>

十、撤销操作

可以直接使用命令    git reset HEAD

这个是整体回到上次一次操作

绿字变红字(撤销add)

如果是某个文件回滚到上一次操作:  git reset HEAD  文件名

红字变无 (撤销没add修改)

git checkout -- 文件

十一、忽略跟踪单个文件或文件夹

本地文件修改后忽略提交到版本库(相当于将文件或文件夹踢出版本控制,修改了也不会提交)

忽略跟踪

git update-index --assume-unchanged 路径或文件

恢复跟踪

git update-index --no-assume-unchanged 路径或文件

如果忽略的文件多了,可以使用以下命令查看忽略列表

git ls-files -v | grep '^h\ '

提取文件路径,方法如下

git ls-files -v | grep '^h\ ' | awk '{print $2}'
所有被忽略的文件,取消忽略的方法,如下

git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值