Git学习笔记
2021-04-20 本文已影响0人
狼性代码人
参考资料:廖雪峰git教程
- 初始化一个空仓库.
- 提交代码
- 版本回退
- 撤销修改
- 删除文件
- git添加远程仓库GitHub
- 创建与合并分支
- Bug分支
- 多人协作
- 同步远程服务器代码
- 创建标签
- 标签操作
- rebase冲突
- 忽略特殊文件(.gitignore)
- git图形化管理工具SourceTree
- git命令小抄
- 搭建自己的git服务器
1、初始化一个空仓库.
-
git init
初始化一个空仓库.
2、提交代码
-
git status
查看信息 -
git add .
添加所有修改
git add <file>
添加指定文件 -
git commit
提交修改,并填写修改信息(ctrl+x,y)。
git commit -m "提交信息"
git commit --amend
追加提交,将当前提交追加到上次提交上
3、版本回退
-
git log
查看版本库状态 -
git reset --hard HEAD^
回退到上一版本,一个^
表示回退上一个版本,两个^
表示回退到上上个版本。
git reset --hard <commitId>
表示回退到指定commit id的版本。 -
git reflog
查看你的每一次命令记录
4、撤销修改
-
git checkout -- <file>
撤销修改;
其中的--很重要,没有--,就变成了“切换到另一个分支”的命令
这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
5、删除文件
-
git rm <file>
从版本库中删除文件 -
rm <file>
实际删除文件 -
git commit -m "remove file"
提交删除文件
6、git添加远程仓库GitHub
- 秘钥:https://www.liaoxuefeng.com/wiki/896043488029600/896954117292416
- 创建远程仓库,并关联:https://www.liaoxuefeng.com/wiki/896043488029600/898732864121440
git remote add origin git@github.com:michaelliao/learngit.git
本地与远程仓库关联;
其中michaelliao替换成自己的GitHub账户名 - 从远程仓库克隆:https://www.liaoxuefeng.com/wiki/896043488029600/898732792973664
git clone git@github.com:michaelliao/gitskills.git
从远程仓库克隆;
其中michaelliao替换成自己的GitHub账户名,gitskills替换成自己的远程项目 - 删除远程仓库:
git remote rm origin
其中origin为远程仓库的名字,也可以自己替换成其他名字;
git是可以同事关联多个远程仓库;
7、创建与合并分支
-
git checkout -b <分支名>
创建分支并切换到当前创建分支上;
等同这两句git命令合并(git branch <分支名>
&git checkout <分支名>
) -
git branch
查看本地分支,前面有*表示当前分支 -
git merge <分支名>
把指定分支代码合并到当前分支上。 -
git branch -d <分支名>
删除指定分支
8、Bug分支
-
git stash
把当前工作现场“储藏”起来,等以后恢复现场后继续工作。 -
git stash list
查看存储的工作现场。 -
git stash apply
恢复现场,但stash内容并不删除,你要用git stash drop
来删除 -
git stash pop
恢复现场的同时删除stash中的内容 -
git stash apply stash@{0}
恢复指定现场的内容 -
git cherry-pick <commit id>
复制一个特定的提交到当前分支 -
git cherry-pick --abort
撤回此次cherry-pick操作
9、多人协作
-
git remote
显示当前远程分支,加<-v>显示详细信息 -
git push origin <分支名>
将本地代码推送到对应远程库
10、同步远程服务器代码
-
git pull
同步远程代码到本地
11、创建标签
-
git tag <name>
创建一个name的标签 -
git tag
查看所有标签 -
git tag <name> <commitId>
对commit这次提交打标签 -
git show <tagName>
查看标签信息 -
git tag -a <tagName> -m "说明" <commitId>
创建带有说明的标签,-a指定标签名,-m指定说明文字
12、标签操作
-
git tag -d <tagName>
删除本地标签 -
git push origin <tagName>
推送标签到远程仓库 -
git push origin --tags
推送本地所有标签到远程仓库 - 删除远程仓库标签:
先删除本地标签git tag -d <tagName>
再删除远程标签git push origin :refs/tags/<tagName>
13、rebase冲突
- 解决冲突问题文件
- 标记已解决的冲突文件
git add <file>
- 完成rebase操作
git rebase --continue
14、 忽略特殊文件(.gitignore)
-
忽略文件规则:
a、忽略操作系统自动生成的文件,比如缩略图等;
b、忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
c、忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件 - git常用忽略文件配置在线浏览:https://github.com/github/gitignore
-
git add -f <file>
强制将gitignore中忽略的文件加入git中; - 在.gitignore文件中排除方案:
# 排除所有.开头的隐藏文件:
.*
# 排除所有.class文件:
*.class
# 不排除.gitignore和App.class:
!.gitignore
!App.class