Git常用命令

git如何新建分支

  • 1 查看当前分支
git branch -a
  • 2 切换到基础分支,如主干
git checkout master
  • 3 创建并切换到新分支
git checkout -b dev

git branch 可以看到已经在dev分支上

  • 4 更新分支代码并提交
git add *
git commit -m "init branch dev"
git push origin dev
  • 5 在git代码管理界面经可以看到dev分支了,成功

新建并下载仓库

命令行指引
您还可以按照以下说明从计算机中上传现有文件。

Git 全局设置

git config --global user.name "name"
git config --global user.email "email"

创建一个新存储库

git clone http://***.git
cd ***
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

windows git仓库设置忽略换行和文件名长度校验

git config --global core.autocrlf false
git config --global core.longpaths true

gerrit管理下的git代码提交小技巧

  • 1、提交代码
git checkout targetbranch 切换至目标分支
git pull origin targetbranch 拉取目标分支最新内容
git add 修改文件
git commit -m “修改内容:xxxxx”
git push origin HEAD:refs/for/targetbranch
  • 2、修改代码后发现所在分支不是目标分支怎么办?

修改代码的分支是A,而需要提交的分支是B, 有两种办法:

方法一:

1> 新建一分支C,保留现在的分支修改内容; 
2> git branch C
3> 切换至目标分支B,拉取C分支的内容至分支B;
git checkout B
git fetch origin C 
4> 检查修改文件变化和内容是否原来修改的一致
git status
git diff 文件
5> 按照提交代码环节操作即可;

方法二:

1> 将A分支上修改的内容放到回收站工作树,这个相当于是一个栈,
可以进行压入弹出,比栈更高级的是可以根据索引进行弹出;
git stash
2> 切换至B分支
git checkout B
3> 从回收站恢复修改数据至B分支
git stash 
git stash list 查看回收站中存在的文件;
git stash show 查看回收站中相对本地文件的变化,与git diff类似;
git stash pop 恢复回收站最顶层数据至本地;
4> 按照提交代码环节操作即可
  • 3、修改提交后发现提交的内容存在问题怎么办?

如果提交后的代码还没有merge到对应分支,可按照如下方法:

1> 切换至原来修改提交所在分支
git checkout targetbranch
2> 继续修改内容
3> git add 修改文件
4> git commit --amend
5> git push origin HEAD:refs/for/targetbranch

如果提交后的代码已经merge,按照正常修改提交代码流程即可;

  • 4、A B C三个人同一时间段内提交代码,此时B提交的代码已经merge,
    而C发现他提交的代码与A有冲突conflict,怎么办?
1> 切换至原来修改提交所在分支,切换至自己修改前的一次提交commit-id
git checkout targetbranch
git log | less
git reset commit-id
2> 拉取合并代码更新
git pull origin HEAD:refs/for/targetbranch
3> git add 修改文件解决冲突,主要是文件中包含HEAD的地方,其中HEAD XXX ====中的XXX是本地旧内容;
4> git commit -m “修改内容:xxx”
5> git push origin HEAD:refs/for/targetbranch
  • 5、拉取代码失败
1> 确认拉取方式是否为带hook的ssh
git clone ssh://chenxiaoyuan@10.75.9.60:29418/CGDL-F25/src/mate-related && scp -p -P 29418 chenxiaoyuan@10.75.9.60:hooks/commit-msg mate-related/.git/hooks/
2> 确认自己的ssh公钥是否重新生成过,或者没有添加至gerrit帐户的认证信息中。
  • 6、查看某个文件的修改历史
git log 相对路径
  • 7、查看某次提交的修改内容
git show commit-id
  • 8、your branch is ahead of … 解决办法
出现该问题表示在次之前已经有X个commite了,执行命令
git reset --hard HEAD^X
解决其中X表示有多少次提交,此命令的意思是回退到x个commit之前。
git reset --hard HEAD^X
git pull --rebase
  • 9、版本反转
与git reset 类似,
git reset恢复到指定版本,中间的版本没有了;
git revert将指定的某个版本的操作重置(撤销该版本的操作),并在现有版本后新生产一个版本
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值