1 config
1.0 git pull - error:Connection timed out
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy https://127.0.0.1:7890
1.1 显示配置信息
git config -l
1.2 缓存用户名和密码
git config --global credential.helper store
1.3 // 删除当前目录下没有被 track 过的文件和文件夹
git clean -df
git clean 的用法详解_一定要学_一定要慎用_KEEP RUNNING的博客-优快云博客
1.4 长期存储密码:
git config --global credential.helper store
git config credential.helper store
1.5 查看远程仓库地址
git remote -v
1.7 标签 - tag
创建标签
git tag -a v1.0 -m "Version 1.0 release"
一次性推送所有标签:
git push origin --tags
删除标签
git tag -d v1.0
删除名为v1.0的远程标签
git push origin --delete v1.0
1.8 分支
# 查看现有标签
git tag
# 基于 0.6_3 创建新分支
git checkout -b new-0.6_4 0.6_3
# 进行修改并提交
# git add .
# git commit -m "Your commit message for 0.6_4 changes"
# 创建新标签
git tag 0.6_4
# 推送新分支和标签到远程仓库
git push origin new-0.6_4
git push origin 0.6_4
1.9 Error
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://dl.google.com/linux/chrome/deb stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E88979FB9B30ACF2 W: Failed to fetch https://dl.google.com/linux/chrome/deb/dists/stable/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E88979FB9B30ACF2
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E88979FB9B30ACF2
1.10 将库中文件打包
git ls-files | tar zcvf files.tar.gz -T -
2 WorkSpace -> Staged (Index)
2.1 撤回add
git restore --staged file
3 Staged (Index) --> Repository
3.1 撤回commit
git reset --soft HEAD^
4 WorkSpace--> Repository (Local)
4.1 恢复本地修改
git checkout file
git checkout .
4.2 Git撤销&回滚操作(git reset 和 get revert)
https://blog.youkuaiyun.com/asoar/article/details/84111841
4.3 【Git】pull遇到错误:error: Your local changes to the following files would be overwritten by merge:
git reset --hard
4.4.Reset和 Revert
Reset "master" to this - 去掉commit
Revert change to this commit -- 代码回复到这个提交,但commit没有去掉
5 WorkSpace-->push--> Repository(Remote)
5.1 TortoiseGit 将push内容撤销,重新提交
有时候提交代码并push后,发现修改并不完善或者造成其它情况,有需要将此次push撤销掉。方法如下:
参考这边文章 使用TortoiseGit进行代码回滚和代码合并_bai_Dreamer的博客-优快云博客
如果只需要将最近一次撤销,并重新修改代码提交。
1、先show log
2. 在上一个版本的log上右击选择Reset this to this vision。在弹出的对话框中选择reset Type 为hard。
本地代码就回到上一版本了。(尽管此时在git上看到的代码还存在想撤销的那个提交)
然后进行修改。修改完后,提交代码。
在PUSH的时候,Options中选择 force known changes.
新的提交就会将需要撤销的那次提交覆盖掉了。
6 Branch
6.1 切换branch
git checkout YJ_0,3_linux
6.2 git分支的理解
6.3 分支
6.4 TortoiseGit如何创建分支?push到远端?
https://jingyan.baidu.com/article/59703552282339cfc00740dd.html
6.5 显示分支
git branch
7.GitHub
7.1.上传代码
第一步:建立git仓库
cd到你的本地项目根目录下,执行git命令
git init
第二步:将项目的所有文件添加到仓库中
git add .
如果想添加某个特定的文件,只需把.换成特定的文件名即可
第三步:将add的文件commit到仓库
git commit -m "注释语句"
图像 小部件第四步:去github上创建自己的Repository
第五步:重点来了,将本地的仓库关联到github上
git remote add origin https://github.com/hanhailong/CustomRatingBar
后面的https链接地址换成你自己的仓库url地址,也就是上面红框中标出来的地址
第六步:上传github之前,要先pull一下,执行如下命令:
git pull origin master
第七步,也就是最后一步,上传代码到github远程仓库
git push -u origin master
7.2. 修改代码:
1、在本地修改相应文件(或者文件新旧替换)
2、git add **/**/文件名 (文件修改路径)
(注意路径要写对)
3、git status ----查看当前本地文件信息
4、 git commit -m "更改信息备注"
5、git push --------提交代码到当前分支
(我一般git push 之前会看一下commit状态:git status)
到此Git提交代码就完成啦!
8 工具
8.1 linux -- gitk
git 图形化操作工具——gitk
8.2 sublime-merge
sudo apt-get install sublime-merge
8.3 常用 Git 命令清单
git 图形化操作工具——gitk | yuweiguo's blog
8.4 Git使用笔记
直接提交修改i文件
$ git commit -am '修改 hello.php 文件'
8.5 GitHub 新手教程
GitHub 新手教程 五,Git GUI 新手教程(2),Clone Existing Repository 克隆代码库_wqMV-优快云博客
Git客户端(TortoiseGit)基本使用详解
Git客户端(TortoiseGit)基本使用详解 - 仅此而已-远方 - 博客园
10 Git push 时如何避免出现 "Merge branch 'master' of ..."
Git push 时如何避免出现 "Merge branch 'master' of ..." - Fururur - 博客园
7.3. 避免出现 - "Merge branch 'master' of ..."
通过git stash ---- 通常用这种方法
git stash
git pull
git stash pop
现在Git上出现这样一些信息,为避免这个: 修改后pull,有冲突解决冲突,然后commit,最后push
pull->commit->push
最好commit与push连续完成
11 git 原理
pull 根据不同的配置,可等于 fetch + merge 或 fetch + rebase。具体了解可继续读下去。
要理解它们的区别,首先我们需要明白的git的架构,它是分布式的版本管理系统。我画了张图,不仅仅涉及到git fetch和git pull,对整体理解也会很有帮助。如下:
上图展示了git的整体架构,以及和各部分相关的主要命令。先说明下其中涉及的各部分。
工作区(working directory),简言之就是你工作的区域。对于git而言,就是的本地工作目录。工作区的内容会包含提交到暂存区和版本库(当前提交点)的内容,同时也包含自己的修改内容。
暂存区(stage area, 又称为索引区index),是git中一个非常重要的概念。是我们把修改提交版本库前的一个过渡阶段。查看GIT自带帮助手册的时候,通常以index来表示暂存区。在工作目录下有一个.git的目录,里面有个index文件,存储着关于暂存区的内容。git add命令将工作区内容添加到暂存区。
本地仓库(local repository),版本控制系统的仓库,存在于本地。当执行git commit命令后,会将暂存区内容提交到仓库之中。在工作区下面有.git的目录,这个目录下的内容不属于工作区,里面便是仓库的数据信息,暂存区相关内容也在其中。这里也可以使用merge或rebase将远程仓库副本合并到本地仓库。图中的只有merge,注意这里也可以使用rebase。
远程版本库(remote repository),与本地仓库概念基本一致,不同之处在于一个存在远程,可用于远程协作,一个却是存在于本地。通过push/pull可实现本地与远程的交互;
远程仓库副本,可以理解为存在于本地的远程仓库缓存。如需更新,可通过git fetch/pull命令获取远程仓库内容。使用fech获取时,并未合并到本地仓库,此时可使用git merge实现远程仓库副本与本地仓库的合并。git pull 根据配置的不同,可为git fetch + git merge 或 git fetch + git rebase。rebase和merge的区别可以自己去网上找些资料了解下。
看到这里,不仅清楚了 git fetch 与 git pull。而且我们使用每个命令时,也能清楚的明白此时git做了什么工作。
11.三款 Linux 下的 Git 图形客户端
三款 Linux 下的 Git 图形客户端 - 知乎
12
详解git pull和git fetch的区别:
详解git pull和git fetch的区别:_马恩光的博客-优快云博客
git fetch和git pull之间的区别
git fetch和git pull之间的区别_怀揣梦想,努力前行-优快云博客
git fetch 和git pull 的差别
git fetch 和git pull 的差别 - 世界因你而小 - 博客园
13 HEAD、master 与 branch
git diff 的简单使用(比较版本区别) - 暗恋桃埖源 - 博客园
15 git stash
git stash
是程序员的至宝。老板 biangbiang 甩来一个 case,说这个要下班之前 hot fix,咋办,stash,切到 release 对应的分支,缝缝补补;产品 kuangkuang 砸来一个需求更新,说这个简单,小哥哥帮帮我先做了,咋办,stash 切一个新的 feature 分支,撸袖子干。如果没有 git stash
,人生至少要灰暗一半。
git 执拗,如果你手头上的活没提交,它拒绝切换分支的请求 —— 这挺合情合理,因为切换分支(其实就是切换到历史上的某个 commit,如果 git checkout -b
就建立一个 ref 指向当前 HEAD
)涉及到工作目录的更新,以及 git 索引的重建,如果当前的工作目录修改了,git 总不能将你辛辛苦苦的成果抹去吧。
所以 git stash
显得格外亲切。它帮你把手头未完成还不好提交(提交必然牵扯 commit-hook,又是运行单元测试又是静态检查的)的活收拢到一个暂存区,等新任务完成了可以再 git stash pop
恢复之前的工作。它的产品机理,像极了 CPU 的 exception,所以说程序员来来回回就那么几出戏,只不过在不同的场景下粉饰一下改头换面上演而已。
16 为Git添加libsecret凭证存储
sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret