1. 查看日志
git log //查看提交历史
git log --pretty=oneline //查看日志在一行显示
git log --graph --pretty=oneline --abbrev-commit //查看各分支的合并情况
git show //查看最近提交的记录
git show [提交的commit_id] //查看更详细的提交记录,可以看到代码内容
git log -p //查看的提交记录更多多,相当于多个git show[commit_id]
git reflog //查看命令历史
2.恢复到某一个提交版本
HEAD是当前最新版本
git reset --hard HEAD^ //恢复到上一个版本
git reset --hard HEAD^^ //恢复到上上一个版本
git reset --hard HEAD~100 //恢复到往上100个的版本
git reset --hard [提交的commit_id]
3.添加当前目录下所有文件变化
git add . //add后面和小点前面有空格
4.提交并添加提交日志
git commit -m "日志内容"
5.查看仓库当前的状态
git status
6.查看当前文件具体变化
git diff
7.回退版本后,要再回到未来的某个版本怎么办?
第一步git reflog查看未来版本的commit_id
第二步git reset --hard [提交的commit_id]
8.撤销工作区的修改
git checkout -- filename (例如:readme.txt,注意--前后都有空格)
两种情况
1.文件修改后,未放到暂存区,执行git checkout -- filename后文件回到未修改前的状态,跟之前一模一样
2.文件修改一次,提交到了暂存区,又再次修改了文件并没有提交到暂存区
执行git checkout -- filename后文件回到第一次提交到暂存区的状态
9.撤销暂存区的修改到工作区
git reset HEAD 文件名
//状态修改为未提交到暂存区状态,文件内容修改的地方还在文件中修改了
10.将提交到暂存区状态恢复到原样
git reset HEAD 文件名
git checkout -- 文件名
11.删除文件
从版本库删除文件,手动删除文件git会记录状态,使用以下命令删除
git rm 文件名
git commit -m "日志"
//如果手动删除了文件,恢复文件使用如下命令,用以上命令删除恢复不了
git checkout -- 文件名
//用版本库里的版本替换工作区的版本
12.在github创建一个仓库,不初始化,如何在本地创建仓库并与远程关联
创建本地仓库文件夹如:test
然后
git init
添加一个文件,比如README.md
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/xxxx/mytest.git
git push -u origin master
如果本地已经建立了一个仓库,如何关联本地和远程仓库,使用如下命令
git remote add origin https://github.com/xxxx/mytest.git
git push -u origin master
13.在github创建了仓库,并进行了初始化,如何在本地创建仓库并与之关联
在github创建仓库时勾选Initialize this repository with a README
使用命令
git clone https://github.com/xxx/hello.git
克隆到本地的仓库会自动与远程仓库进行关联
14.本地仓库创建分支并合并分支到远程仓库
前提:本地仓库与远程仓库建议关联(12、13条)
创建分支并切换到分支
git checkout -b develop
此命令相当于以下两条
git branch develop
git checkout develop
编辑文件并提交
推送到远程使用以下两个命令之一
(1)git push origin develop
或
(2)git push
此时提示
fatal: The current branch develop has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin develop
执行以下命令后
git push --set-upstream origin develop
远程仓库创建分支develop,并且修改的内容已推送到develop分支
点击pull request
创建develop合并到master
15.合并分支
git merge命令用于合并指定分支到当前分支
git merge dev
合并dev分支到当前分支上
使用--no-ff参数,表示禁用Fast forward进行合并
git merge --no-ff -m "merge with no-ff" dev
因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并
16.删除分支
git branch -d dev
//强行删除dev分支
git branch -D dev
17.切换分支
git checkout <branch>
新的git版本可以使用switch命令切换分支
git switch -c dev //创建并切换到新的dev分支
git switch master //切换到master分支
18.查看原程分支信息
git remote
查看详细信息使用以下命令
git remote -v
远程仓库默认名称是origin
推送当前分支gsg的所有本地提交到远程
git push origin gsg
19.暂存代码
工作到一半,需要在其他分支修复问题
先暂存代码
git stash
切换到其他分支修复问题
切换回原来分支
用以下命令查看刚才工作现场保存到哪里了
git stash list
恢复的方法有以下两个
(1)一种是git stash apply恢复,但是恢复后,stash内容还在,需要git stash drop删除
(2)另一种是git stash pop,恢复的同时,stash内容也删除了
20. 在一个分支上修复了Bug,要将这次提交复制到其他分支的办法
在dev_1.0分支上修复的bug,想要合并到当前dev_2.0分支?
复制dev_1.0上提交的commit_id
切换到dev_2.0
在dev_2.0分支执行
git cherry-pick commit_id命令
把bug提交的修改“复制”到当前分支
21.远程有分支dev和dev_2
要在远程dev分支上开发,首先需要在本地创建远程dev的分支
使用以下命令创建
git checkout -b dev origin/dev
当修改完文件提交并推送时
git push origin dev
突然推送失败,原因是其他人修改了同样的文件与你的提交有冲突
解决方法为
git pull
把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送
git pull 失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接
使用以下命令建立链接
git branch --set-upstream-to=origin/dev dev
然后再 git pull
代码有冲突在本地解决冲突,解决后,提交再push
22.创建标签
git tag v1.0 //在最新提交上创建了v1.0标签
git tag v1.0 commit_id //根据提交commit_id创建标签
git tag -a v1.0 -m "version 1.0 " commit_id //创建带说明的标签
创建的标签都是在本地的,如果要推送到远程则使用如下:
git push origin v1.0
或一次推送本地所有标签
git push origin --tags
或
git push --tags
git tag //查看所有标签
git show tag_name(标签名) //查看标签信息
切换到某个tag的版本代码
git checkout tag_name
标签打错,删除标签
git tag -d v1.0
如果标签推送到了远程如何删除
(1)先在本地删除git tag -d v1.0
(2)git push origin :refs/tags/v1.0
网友评论