Git常用命令总结

# 创建分支
git branch <branch_name>
# 切换分支
git checkout <branch_name>
# 创建并切换分支
git checkout -b <branch_name>

# 上传文件到远程仓库(共3步)
git add readme.txt
git commit -m "wrote a readme file"
git push origin <branch_name>

# 把存在本地的一个新建的分支的代码上传到远程仓库的这个新的分支上(远程仓库还没有这个新分支)
git push origin <branch_name>:<branch_name>

# 从远程仓库某一分支上拉取最新的代码
git pull origin <branch_name>

# 查看本地库哪些文件修改了以及当前处于哪个分支
git status

# 查看本地库和远程库的所有不同
git diff
# 查看本地库和远程库某一文件的不同
git diff <file_name>

# 查看远程仓库上传记录
git log
git log --pretty=oneline

删除文件
git rm <file_name>
git commit -m "remove test.txt"
# 恢复删除的版本
git checkout -- <file_name>

# 取消本地全部修改
git checkout .

# 显示所有分支
git branch -r

# 切换分支
git checkout origin/<branch_name>

# 查看git日志,会列出记录的id
git log 
# 回退到上一个版本
git reset --hard HEAD 
# 回退到对应logid的历史版本
git reset --hard logid的前几位 

git diff HEAD -- <file_name> # 查看已经上传的最新版本和当前本地版本的差别
git checkout -- <file_name> # 把readme.txt文件在工作区的修改全部撤销
git reset HEAD readme.txt 

# 删除文件
git rm <file_name>
# 向远程仓库提交删除请求
git commit -m "remove test.txt"
# 把删除的文件恢复
git checkout -- <file_name>

# 删除分支
git branch -d <branch_name>
# 强行删除
git branch -D <branch_name> 

# 把分支名称是dev的分支合并到master分支
git merge <branch_name> # 这种合并方式是fast forward方式, 合并后不能看出做过哪些合并
# 强制禁用Fast forward方式, 合并后可以看出做过哪些合并
git merge --no-ff -m "merge with no-ff" <branch_name> 
# 查看分支合并图
git log --graph

删除分支

步骤1、先切到其他分支
git checkout branch_name

步骤2、然后删除本地分支
git branch -d branch_name 
如:删除本地dev分支:git branch -d dev

步骤3、最后删除远程分支
git push origin -d branch_name
如:删除远程dev分支:git push origin -d dev

创建新分支

git checkout -b new_branch_name # 依赖的分支是创建分支时所在的分支
git checkout -b <新分支名> <远程主机名>/<远程分支名> # 基于远程分支代码代码开一个本地分支

# 创建新分支并提交到远程
git push origin branch_name:branch_name
# 如
git push origin test:test

git add 之后取消add/ git 取消暂存

# git add之后,取消add
git restore --staged file_name

git rebase

git pull --rebase origin branch_name,也就是你要与哪个分支保持一致,就需要rebase哪个分支

git pull --rebase origin develop , 这个命令就是让当前分支与develop分支代码保持一致

然后需要执行 git rebase --continue

基于tag创建新分支

1.执行:git origin fetch 获得最新.

2.通过:git branch 会根据tag创建新的分支.
例如:git branch newbranch vtest.1.0.FINAL
会以tag vtest.1.0.FINAL创建新的分支newbranch;

3.可以通过git checkout newbranch 切换到新的分支.

4.通过 git push origin newbranch

在tag基础上修改

1) 根据tag创建分支
  git checkout -b branchname tags/v0.3.7

2) 提交更改的code
    git add .
    git commit -m "Fix included"
  或者使用 cherry-pick 合并一个commit
    git cherry-pick {commitid}

3) 删除本地tag,并重新创建该tag
    git tag -d {tagname}
    git tag {tagname}

4) 删除远程tag,并push code重新生成远程tag
    git push origin --delete {tagname} // deletes original remote tag
    git push origin {tagname} // creates new remote tag

5) Update local repository with the updated tag
    git fetch --tags

git 查看某次提交的内容

1.获取该次的commit id
  git log
2.查看该次commit的具体内容
  git show xxxid
3.查看详细文件列表
  git show xxxid --stat
4.查看某次提交对某个文件的修改
  git show xxxid file_name

基于tag拉取代码,拉取某tag的代码

# 如果本地已有代码仓库
git tag
git checkout <tag-name>


# 如果本地没有代码仓库
git clone <git项目的地址>
git tag
git checkout <tag-name>

git分支合并时出现冲突

# 先把自己的分支合并要合的分支
# 比如:自己的分支是 test,要合到develop分支,出现了冲突,可以用下面的语句先合并develop的改动到test分支,在本地解决好冲突之后再合并到develop
git merge origin/develop
# 然后在本地解决完冲突之后执行 git add file
# 然后执行 git commit (注意,这里没有-m)
# 最后,执行 git push origin branch_name。完成

git 撤销本地修改

git checkout -- 文件名 # 撤销单个文件的本地修改
git checkout . # 撤销本地所有文件的修改

开发中合并代码到一个分支,出现了冲突,解决办法

比如要把自己的test分支的代码合并到develop分支,但是合并的时候出现了冲突,
可以用 git merge origin develop 把develop的代码合并到自己的分支,
然后在本地解决冲突,解决完了再提交,然后合并到develop分支

开发中把自己的分支合并到develop分支,再把分支合到release分支,通常会出现把develop分支别人的commit合并到自己的分支,此时合并到release分支的时候不合适,需要把属于develop的commit删除

1、如果合并到develop分支之后,本地代码没有再修改了,此时只需要删除merge develop
的那次记录,具体做法是,用命令 git reset --hard commitid

2、如果合并到develop分支之后,本地代码有新的修改,此时有可能需要删除merge develop
的那次记录,因为那次记录可能带入了新的commit,具体做法是,
先回退到merge develop分支的那个提交,
用命令 git reset --soft commitid(merge develop那次的commitid)
然后执行 git add 改动的文件;然后执行 git stash,
然后执行 git reset --hard commitid(merge develop之前一次的commitid)
然后执行 git stash pop
然后执行 git add 要提交的文件
然后执行 git commit -m "commit log"
然后执行 git push origin 分支名

git commit合并

git rebase -i edd6be3

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值