常用git命令

常用git命令

repo init                       //初始化仓
repo sync -c --no-tags	          //同步最新版本
repo start master --all	          //创建master分支,在分支开始操作
git branch -a	                  //查看本地分支
/****以上为初始化部分,首次操作即可****/
git checkout .	                  //回退当前目录下的所有文件,到上次upload成功的版本,Linux下工程所有改动被还原
git status                       //查看修改后与上次commit 有什么文件变化
git add -u                       //添加修改过的文件到缓冲区
git commit -m                   //本地库进行一次提交
git log                          //查看commit记录,查看change ID
git reset --hard HEAD^(HEAD~1)     //撤销本次提交(本地修改不保留?)
git reset HEAD^                  //撤销本次commit 修改保留在本地,可以再次add
git reflog                        //显示历史操作记录
git pull --rebase                  //提交前更新代码
repo upload                     //将代码提交到网络版仓中
git blame 文件名                //查看文件的每行上库记录
git stash                        //将修改放到垃圾箱
git stash pop                    //将放入垃圾箱的修改取回
git reset HEAD                   //此操作将缓存区的修改删除,不影响本地文件
git revert commit-id manifests      //本地回退代码
repo forall -vc “git reset --hard”     //抛弃本地所有修改,回退版本时保证每个仓都没有修改
git clean -dfx                    //清理build产生的文件
git diff > patch                   //生成补丁文件,文件名patch
git cherry-pick --abort             // (取消cherry pick操作?)
git apply patch                   //拷贝patch
git blame <文件> -L <行号,行号>   //(例如git blame a.c -L 13,20 查看文件a.c中的第13-20行,上次修改记录)

日常问题解决:
一.下载某时刻代码(版本回退)
1.cd ./repo/manifetes/
2.查看时间节点,找到时间节点(tag号)
3.插入到init 链接中,重新下载代码。(查看init 链接分支:cat .repo/manifests/.git/config)

二.代码改错,回退
1.代码已经修改,但没有git add,向要丢掉修改: git checkout . (将已修改代码从工作区清除)
2.代码已经修改并且执行了git add,想要丢掉修改:git reset HEAD (从本地库恢复暂存区文件,清除暂存区代码,但工作区仍保留修改)
3.git reset --hard 回到上一次的commit节点,当前修改全部丢弃,工作区也不保留.

三.上库冲突解决方法:
即有部分代码你要修改,同时别人也在修改,但比你抢先上库了,所以你在合入的时候,系统无法辨别保留谁的代码。这就产生了冲突,需要人为解决保留哪些代码(大多数是保留别人的修改,把自己的代码放在下面)。
1.git remote show 获取远程仓(假设查询到的远程仓是origin)
2.git fetch origin 获取要同步代码的远程仓
3.git branch --remote 查看命令所在分支(假设分支为origin/br_hi1152_master)
4.git rebase origin/br_hi1152_master (rebase即为变基,因为我们本地的分支代码较旧(A),但是库上的主分支已经更新到了B,此时我们就需要将本地的分支更新到B在做修改,将基于A修改的代码变基成基于B修改的代码,执行过此步骤后代码里面冲突的部分将变为如下样式
<<<<<<<HEAD
xxxx库上此处的代码xxxx
.=======
xxxx本地自己修改的代码xxxx
.>>>>>>>问题单号
5.根据实际需要,合并好代码即可
6.git add .(将当前的修改全部提交到缓冲区)
7.git rebase --continue(修改完文件冲突后,继续变基。rebase成功后git status查看,当前已没有需要提交的文件)
8.repo upload(推到网页托管,随后等待老大合入库)

GIT命令很多,很强大,其实只用一小部分就可以解决工作中的大部分问题.方法也不唯一,初学的话,廖雪峰的git教程可以看看.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值