git常用操作总结

git初始化
git init 本地初始化git仓库

git添加暂存
git add 添加本地文件到git管理中

git提交
git commit -m ‘…….’ 提交本次变更记录到本地
git commit -am ‘…….’ 相当于git add 且 git commit

git推送远程仓库
git push -u origin master 将本地代码推送到远程仓库
git push [origin master] 使用过上一条命令之后使用

git 拉取远程仓库
git fetch 拉取远程仓库信息
git pull 拉取远程仓库信息并自动合并(相当于git fetch 且 git merge)

git分支
git branch 查看当前分支
git branch -a 查看本地及远程所有的分支
git checkout ‘branch_name’ 切换分支
git checkout -b ‘branch_name’ 创建并切换分支,相当于执行了前面两条命令
git branch –set-upstream-to ‘branch_name’ origin/’branch_name’ 建立本地分支与远程分支的连接关系
git merge ‘branch_name’ 合并分支
注意:先用git branch查看在哪条分支上,*表示当前分支,一般主干master比较稳定,不进行开发,只负责版本的发布,所以建议尽量使用多的分支进行开发工作。
git log –graph –pretty=oneline –abbrev-commit 可以查看分支的合并情况

如果合并顺利,则默认使用的是Fast-forward 形式。Fast-forward表示如果删除了被合并的分支,以后查看分支的合并情况是看不到此分支的合并信息的。

如果想看到此分支的合并情况,在合并的时候使用git merge –no-ff -m “merge_description” ‘branch_name’,再使用上面的命令就可以看到合并的情况了。–no–ff 也就是不使用Fast-forword的形式
如果合并不顺利,说明分支有冲突的文件,需要手动修改合并。使用git status可以告诉我们冲突的文件。
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,
使用 vi ‘file_name’,按i进入编辑模式,随后手动修改冲突的地方,然后按ESC,最后按:wq保存并退出

一般情况下,git分支常用于团队协作,流程大概是这样:
1. 使用git push origin ‘branch_name’推送自己的修改
2. 如果推送失败,说明远程分支比你的先更新,需要先git pull先抓取下来合并
3. 如果git pull 提示’no tracking information’,则说明本地分支与远程分支的链接关系没有建立,使用git branch –set-upstream-to ‘branch_name’ origin/’branch_name’

有时候当稳定版的master出现Bug需要及时修复时而分支的任务还没有完成,想要先修复Bug时怎么办呢?
可以先使用git stash 把分支的任务先给隐藏起来,使用git status 时发现此时的工作区和暂存区是干净的。随后就可以切换回主分支修复Bug了。当Bug修复完成后需要恢复分支的状态,使用git stash list 可以查看当前工作现场。恢复有两种办法,一种是使用git stash apply,但是stash 的内容并不删除,要使用git stash drop来删除。另一种是使用git stash pop,这种方式连stash的内容也一起删除了。再使用git stash list就已经看不到stash的内容了。之后就能继续分支的工作了。

git版本回退
使用git log 查看你的提交记录,还可以加上–pretty=oneline的参数,可以看到你整个的历史提交记录。HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上一个版本,要回退上100个版本可以使用HEAD^100,如果想回退到上一个版本,可以使用git reset –hard HEAD^。

我们也可以回退到指定的版本,比如要回退版本的commit 的id为854427c260cde1d7af72187fdc48ccc09f089d36,我们可以这样写,git reset –hard 854427c26 后面的信息不用补全,因为Git会自动去找符合的commit的版本。

如果你想回退到最新的版本,可以使用git reflog ,你就能发现你之前commit的id了。接着使用上面的命令就好了。

git忽略文件不起作用的原因:之前已经做过版本控制了,需要取出版本控制。
git rm -r –cached .

最后总结一下其他常用的git命令:
暂存
1.git stash 分之未提交的内容暂存
2.git stash pop 分之恢复未提交暂存的内容
3.git stash clear – 清除暂存信息

远程仓库
1.git remote set-url [name] [newUrl] 修改地址源信息
2.git remote -v 查看远程仓库信息

取消暂存
1.git rm –cached xxx 删除已经add但没有commit的文件

日志
1.git log –author=”” 查看某人的提交记录
2.git log –graph –pretty=oneline –abbrev-commit 查看log分支图
3.git log –decorate (显示各个分支所指向的对象)
4.git log –decorate –graph –all (以树状图的形式查看所有分支的提交记录)

拉取
1.git fetch 更新同步远程信息,相比于git pull区别在于前者不会自动merge,更安全
2.git checkout -t #-t 意为 track,即跟踪一个远程分支 拉取远程分支

推送
1.git push –force 强制提交代码
2.git push -u origin [develop] 设置本地分支去跟踪远程对应的分支

标签
1.git tag 列出所有的标签
2.git tag -a v1.0.0 -m “my version 1.0.0” 创建含附注的标签
3.git show v1.0.0 查看该标签信息
4.git push origin –tags v1.0.0 推送标签到远程仓库
5.git show v1.8.0 显示某个tag信息
6.git fetch origin tag

回滚:
1.git reset –hard commitId 根据commonId回滚

分支
1.git checkout -b auditbranch origin/auditbranch 切换到远程分支并创建本地分支
2.git branch –set-upstream-to origin/develop_v2 develop_v2 将远程分支和本地分支相关联
3.git merge develop –no–f -m “” 合并分支保留分支合并历史
4.git branch -r -d #-r表示操作的是远端 -d表示执行删除操作 删除远程分支
5.git push origin : #注意,origin后面有一个 空格,以及一个冒号,这是必不可少的 推送空分支到远程分支(删除远程分支)
6.git push origin –delete
7.git fetch -p 删除已被删除的远程分支对应的本地分支
8.git branch –merged 查看已合并的分支
9.git branch –no-merged 查看还没有合并的分支
10. git branch -m 当前分支名 新的分支名

常见问题:
1.Your branch and ‘origin/develop’ have diverged resolve:
使用 git pull –rebase

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值