git笔记
# git常用命令
- pwd //查看当前完整路劲
- ssh-keygen -t rsa -b 4096 -C "919006380@qq.com" //创建ssh钥匙
- 创建成功最后会出现正方形里面有乱码
- cd ~/.ssh //查找ssh文件
- mkdir //创建目录
- rm -rf //删除目录
- git rm -r --cache 删除远程仓库文件,本地文件不删除
- touch a.md //创建文件
- echo “hello” >> a.md //在文件尾部插入一个字符串,一个“>”代表 覆盖。
- git status //查看仓库当前状态
- git diff //是工作区(work dict)和暂存区(stage)的比较
- git diff --cached //是暂存区(stage)和分支(master)的比较
- git log //显示最近存档commit日志 “--pretty=oneline”参数显示简化版
- git reset --hard HEAD^ //退回上一个版本 ^^两个^等于上上个版本。
- git reset --hard 3628164 //切换版本 3628164等于版本号的前几位数字,没必要写全git会自动查找
- git reflog // 列出你每一次存档的命令,包括前几位数的版本号
git config --global core.quotepath false //解决中文文件名乱码 git config core.ignorecase false git默认对大小写不敏感,会将大写的名称改成小写提交,可配置为对大小写敏感
# 三个很有用的 git 命令。
- git grep <关键词> :搜索含有关键词的文件。
- git blame <文件名>:查看指定文件每一行的提交人和提交时间。
- git log -p <文件名>:查看指定文件的每一次提交和改动。
# 修改全局用户名和邮箱
git config --global user.email "919006380@qq.com"
git config --global user.name "weibo"
1
2
2
# 查看用户名和地址
git config user.name
git config user.email
1
2
2
# 修改完后推送上github三步代码
git add . // 文件进入暂存区,. 表示添加所有已修改的,-A表示添加所有文件包括删除的
git commit -am "add" // 存档,实际上就是把暂存区的所有内容提交到当前分支(master)其中
“ ”内写入的是本次提交的说明,可以是任意内容
git push // push到远端GitHub的master上
--------------常用参数说明------------------------------------
git add -A:`[<path>]` # [<path>]表示把<path>中所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库。省略<path>表示.,即当前目录。
git add -i #我们可以通过git add -i 命令查看当前目录中被所有修改过或已删除文件但没有提交的文件,并通过其revert子命令可以查看当前目录中所有untracted的文件,同时进入一个子命令系统。
git commit -v #查看存档并且添加存档信息
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 关联远程库
- git remote add origin git@server-name:path/repo-name.git //关联一个远程库
- git remote add origin git@github.com:qq919006380/WEBdesignPattern.git
- git remote add origin git@github.com:qq919006380/WEBdesignPattern.git
- git remote set-url origin git@github.com:qq919006380/WEBdesignPattern.git
- git remote set-url origin [url] //修改关联一个远程库
- git remote rm origin //删除关联一个远程库
- git push origin master// 关联后推送内容
# 上传创库
- 在github官网创建项目,按提示上传
- 在本地文件输入git init创建git隐藏的跟踪文件
# 分支管理
- 查看分支:git branch
- 查看分支包括隐藏分支:git branch -a
- 创建分支:git branch
<name>
- 切换分支:git checkout
<name>
- 创建+切换分支:git checkout -b
<name>
- 合并某分支到当前分支:git merge
<name>
- 删除分支:git branch -d
<name>
- 查看分支合并途:git log --graph
- 查看远程库的信息:git remote
- 查看远程库详细的信息:git remote -v
# 三个状态
- 已提交(mommitted)该文件已经被安全地保存在本地数据中了
- 已修改(modified)修改了某个文件,但还没有提交保存
- 已缓存(staged)吧已修改的文件放在下次提交时要保存的清单中
# 三个区
- 工作区(Working Directory) //本机电脑能看的目录文件夹,知识库
- 版本库(Repository) //工作区有一个隐藏目录.git,这个是版本库
- 暂存区 //Git的版本库里的stage(或者叫index)的叫暂存区
# 参见错误
ssh: connect to host ssh.github.com port 44: Connection refused
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
1
2
3
4
5
2
3
4
5
此错误是您网络下的防火墙阻止了某些端口,解决
vim ~/.ssh/config
按i进入编辑模式,复制黏贴以下内容
Host github.com
Hostname ssh.github.com
Port 443
1
2
3
2
3
之后按Esc退出编辑模式,后输入:wq
保存退出
运行命令ssh -T git@github.com
以确认问题是否已解决。 参考资料 (opens new window)
需要注意的是有时候执行完上面的命令,问题依然没有解决,最后在我折腾了一个下午之后,发现换一个网络就可以了...之后这个问题再也没有深入研究过了。
过了第好几天之后,发现换了个网也不行了,无奈之下继续排查,发现是github dns污染
造成,只需跟换host就可以,具体参考 (opens new window)
# 图形工具
- sourcetree
- tortoisegit小乌龟
git讲解视频 (opens new window) 廖雪峰git教程 (opens new window) github慕课视频 (opens new window)
编辑 (opens new window)