Git学习
-
git clone url.git
-
git remote add url.git
-
git status // 查看工作区代码相对于暂存区的差别
-
git pull origin master
-
git add :将要提交的文件的信息添加到索引库中(将修改添加到暂存区)
$ git add . # 将所有修改添加到暂存区 $ git add * # Ant风格添加修改 $ git add *Controller # 将以Controller结尾的文件的所有修改添加到暂存区 $ git add Hello* # 将所有以Hello开头的文件的修改添加到暂存区 例如:HelloWorld.txt,Hello.java,HelloGit.txt ... $ git add Hello? # 将以Hello开头后面只有一位的文件的修改提交到暂存区 例如:Hello1.txt,HelloA.java 如果是HelloGit.txt或者Hello.java是不会被添加的原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/git/git_add.html
-
git commit -m “xxx” // 将缓存区内容添加到本地仓库
-
git push origin master 将本地版本库推送到远程服务器,origin是远程主机,master表示是远程服务器上的master分支,分支名是可以修改的
-
add/commit/push
Add命令是把文件从IDE的工作目录添加到本地仓库的stage区,Commit命令把stage区的暂存文件提交到当前分支的仓库,并清空stage区。Push命令把本地仓库的提交同步到远程仓库
-
git config --list :查看git配置信息
-
git config --global user.name “xxx”
git config --global user.email “xxx” -
撤销之前push错的文件
- 本地先删除
- git add 删除的文件
-
Git 忽略规则匹配语法
-
空格不匹配任意文件,可作为分隔符,可用反斜杠转义
-
# 开头的文件标识注释,可以使用反斜杠进行转义
-
! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义
-
/ 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
-
/ 开始的模式匹配项目跟目录
-
如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
-
** 匹配多级目录,可在开始,中间,结束
-
? 通用匹配单个字符
-
[] 通用匹配单个字符列表
-
-
常用匹配示例
- bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
- /bin: 忽略根目录下的bin文件
- /*.c: 忽略 cat.c,不忽略 build/cat.c
- debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
- **/foo: 忽略/foo, a/foo, a/b/foo等
- a/**/b: 忽略a/b, a/x/b, a/x/y/b等
- !/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
- *.log: 忽略所有 .log 文件
- config.php: 忽略当前路径的 config.php 文件
- .gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
-
**git rm -r --cached filename ** 跟踪取消
把文件从git中拿出来,不再进行版本跟踪,但保留工作区的文件,去掉已经托管的文件
-
git checkout filename 恢复某个已修改的文件,拉取暂存区文件 并将其替换成工作区文件
#撤销WorkSpace中的更新,将Stage的文件提取覆盖当前文件(撤销后无法找回)
-
revert 还原已提交的修改
Revert 撤销一个提交的同时也会重新创建一个提交。这是一个安全的方法,因为它不会重写提交历史。比如,下面的命令会找出倒数第二个提交,然后创建一个新的提交来撤销这些更改,然后把这个提交加入项目中。 相比git reset,它不会改变现在的提交历史。因此,git revert可以用在公共分支上,git reset应该用在私有分支上
-
git revert HEAD 还原最近一次修改
-
git revert commit -id 还原指定版本的修改
-
-
git reset
- git reset --hard [版本号] 彻底回退版本,连本地文件都会被回退到上个版本的内容
GitHub客户端的使用
-
uodo 撤销commit的一个版本,不会留下历史记录
-
revert 撤销commit的一个版本,会留下历史记录
-
roll back 回滚但某一版本
合并分支
-
merge
-
rebase
Github Flow
- 协作开发
- add collaborator
- [cerate branch]
- pull request
- merge
- 开源贡献
- fork一个开源项目
- 修改后,pull request,发起讨论
- 拥有者merge
Github pages
- User site
- Project site