-
查看git的版本
$ git –version -
配置,
$ git config --global user.name “ggyysophia”
$ git config --global user.email 1040311149@qq.com -
查看用户
$ git config user.name -
检查配置信息
$ git config --list -
帮助
$ git --help config
$ git add -h (简洁) -
初始化仓库
进入盘
$ cd /Users/user/my_project
初始化
$ git init -
指定所需的文件来进行追踪
$ git add *.c
$ git add LICENSE
$ git commit -m ‘initial project version’ -
克隆现有的仓库
git clone
$ git clone https://github.com/libgit2/libgit2
7.1 clone + rename
#git clone https://github.com/libgit2/libgit2 mylibgit -
记录每次更新到仓库
8.1 检查当前文件状态
$ git status
8.2 加注释:
echo ‘My Project’ > README
8.3 跟踪新文件
git add README
8.4 暂存已修改的文件
git add README
8.5 加注释
vim CONTRIBUTING.md
简言之, 修改了某个文件,一定要重新用 git add XXX
8.6 状态简览
$ git status -s
忽略文件, 写成一个文件格式
8.7 查看已暂存和未暂存的修改
git diff 本身只显示尚未暂存的改动
git diff --cached 查看已经暂存起来的变化 -
提交更新
$ git commit
$ git commit -m “Story 182: Fix benchmarks for speed” -
跳过使用暂存区域
$ git commit -a -m ‘added new benchmarks’
-a 选项使本次提交包含了所有修改过的文件。 这很方便,但是要小心,有时这个选项会将不需要的文件添加到提交中。 -
移除文件
$ rm PROJECTS.md 本地移除
$ git rm PROJECTS.md git 缓存中移除 -
移除缓存,不再追踪
你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。 当你忘记添加 .gitignore 文件,不小心把一个很大的日志文件或一堆 .a 这样的编译生成文件添加到暂存区时,这一做法尤其有用。
$ git rm --cached README
git rm --cached -f .idea/vcs.xml -
移动文件
如果在 Git 中重命名了某个文件,仓库中存储的元数据并不会体现出这是一次改名操作。
$ git mv file_from file_to
$ git mv README.md README -
查看提交历史
$ git log
$ git log -p -2 # -p 或 --patch ,它会显示每次提交所引入的差异(按 补丁 的格式输出)
$ git log --stat
$ git log --pretty=oneline # --pretty。 这个选项可以使用不同于默认格式的方式展示提交历史
$ git log --pretty=format:"%h - %an, %ar : %s" # format ,可以定制记录的显示格式。 这样的输出对后期提取分析格外有用——因为你知道输出的格式不会随着 Git 的更新而发生改变:
$ git log --pretty=format:"%h %s" --graph # 当 oneline 或 format 与另一个 log 选项 --graph 结合使用时尤其有用。 这个选项添加了一些 ASCII 字符串来形象地展示你的分支、合并历史: -
限制输出长度
类似 --since 和 --until 这种按照时间作限制的选项很有用
$ git log --since=2.weeks
假设你想找出添加或删除了对某一个特定函数的引用的提交,可以调用:
$ git log -S function_name
2.4 Git 基础 - 撤消操作
撤消你所做修改的基本工具,有些撤消操作是不可逆的。这是在使用 Git 的过程中,会因为操作失误而导致之前的工作丢失的少有的几个地方之一。
有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令来重新提交:
例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:
$ git commit -m ‘initial commit’
$ git add forgotten_file
$ git commit --amend
2.4.1 取消暂存的文件
如何操作暂存区和工作目录中已修改的文件, 修改文件状态的同时,也会提示如何撤消操作
例如,你已经修改了两个文件并且想要将它们作为两次独立的修改提交, 但是却意外地输入 git add * 暂存了它们两个。如何只取消暂存两个中的一个呢?
$ git reset HEAD CONTRIBUTING.md # git reset HEAD … 来取消暂存
#git reset 确实是个危险的命令,如果加上了 --hard 选项则更是如此。 然而在上述场景中,工作目录中的文件尚未修改,因此相对安全一些。
2.4.2 撤消对文件的修改
如果你并不想保留对 CONTRIBUTING.md 文件的修改怎么办? 你该如何方便地撤消修改——将它还原成上次提交时的样子(或者刚克隆完的样子,或者刚把它放入工作目录时的样子)? 幸运的是,git status 也告诉了你应该如何做。 在最后一个例子中,未暂存区域是这样:
$ git checkout – CONTRIBUTING.md
#请务必记得 git checkout – 是一个危险的命令。 你对那个文件在本地的任何修改都会消失——Git 会用最近提交的版本覆盖掉它。 除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令。
#如果你仍然想保留对那个文件做出的修改,但是现在仍然需要撤消,我们将会在 Git 分支 介绍保存进度与分支,这通常是更好的做法。
#记住,在 Git 中任何 已提交 的东西几乎总是可以恢复的。 甚至那些被删除的分支中的提交或使用 --amend 选项覆盖的提交也可以恢复 (阅读 数据恢复 了解数据恢复)。 然而,任何你未提交的东西丢失后很可能再也找不到了。
2.5 Git 基础 - 远程仓库的使用
- 查看远程仓库
$ git clone https://github.com/schacon/ticgit
$ cd ticgit
$ git remote - 你也可以指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL。
$ git remote -v - 添加远程仓库
git remote add pb https://github.com/ggyysophia/fundamental_knowledge.git
git remote -v
现在你可以在命令行中使用字符串 pb 来代替整个 URL
例如,如果你想拉取 ggyysophia 的仓库中有但你没有的信息,可以运行 git fetch pb:
$ git fetch pb
现在 Paul 的 master 分支可以
在本地通过 pb/master 访问到——你可以将它合并到自己的某个分支中, 或者如果你想要查看它的话,可以检出一个指向该点的本地分支。 (我们将会在 Git 分支 中详细介绍什么是分支以及如何使用分支。) - 从远程仓库中抓取与拉取
$ git fetch - 推送到远程仓库
git push
当你想要将 master 分支推送到 origin 服务器时(再次说明,克隆时通常会自动帮你设置好那两个名字), 那么运行这个命令就可以将你所做的备份到服务器:
$ $ git push origin master - 查看某个远程仓库
如果想要查看某一个远程仓库的更多信息,可以使用 git remote show 命令。 如果想以一个特定的缩写名运行这个命令,例如 origin,会得到像下面类似的信息:
$ git remote show origin - 远程仓库的重命名与移除
你可以运行 git remote rename 来修改一个远程仓库的简写名。 例如,想要将 pb 重命名为 paul,可以用 git remote rename 这样做:
$ git remote rename pb paul
$ git remote
值得注意的是这同样也会修改你所有远程跟踪的分支名字。 那些过去引用 pb/master 的现在会引用 paul/master。
如果因为一些原因想要移除一个远程仓库——你已经从服务器上搬走了或不再想使用某一个特定的镜像了, 又或者某一个贡献者不再贡献了——可以使用 git remote remove 或 git remote rm :
$ git remote remove paul
$ git remote
一旦你使用这种方式删除了一个远程仓库,那么所有和这个远程仓库相关的远程跟踪分支以及配置信息也会一起被删除。
2.6 Git 基础 - 打标签
$ git tag
$ git tag -l “v1.8.5*”
创建标签
附注标签
2.7 Git 基础 - Git 别名
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
$ git config --global alias.unstage ‘reset HEAD --’
这会使下面的两个命令等价:
$ git unstage fileA
$ git reset HEAD – fileA
这样看起来更清楚一些。 通常也会添加一个 last 命令,像这样:
$ git config --global alias.last ‘log -1 HEAD’
这样,可以轻松地看到最后一次提交:
$ git last
Mac删除GitHub的某个文件夹步骤
1、将github的项目拉取到本地
$ git pull origin master
2、删除相应到文件夹
$ git rm -r --cached xxx //xxx指对应到文件夹名称
3、重新提交项目到本地仓库上
$ git commit -m “注释内容”
4、将项目从本地提交到GitHub上
git config --global http.sslBackend “openssl”
git config --global --add remote.origin.proxy “”
$ git push
macos LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
git config --global http.sslBackend “openssl”
方法2.若第一种方法输入命令不管用,可以尝试先输入下边命令,然后在执行第一种方法的命令。
步骤一:
git config --global http.sslBackend “openssl”
步骤二:
git config --global --add remote.origin.proxy “”
commit push ggyysophia1040311149@qq.com 第xx次作业 commit
push
看是否提交成功
- git log 看最近一次提交
- 看自己的github仓库
发起pullRequst - 在自己的githu仓库中, 找到 Pull requests
- 确定自己的仓库和老师的仓库, 一定是自己的指向老师的
- 写自己的一些作业新的, 或者向老师请教的问题,点击create pull request
- 看到老师的仓库显示了你的最新的Pull request, 即视为提交成功
三、后续仓库的更新问题
大家每次提交作业的时候, 老师的Github QAboard的仓库都会更新, 每次更新的时候,
我们都要将自己的fork的远程代码进行更新
用git命令即可:
- 输入命令 git remote -v
查看远程的分支情况, 如果你的upstream不如图片中的2两一样
先输入命令 git remote remove upstream - 再添加老师侧的远程仓库
不需要:git remote add upstream https://github.com/ggyysophia/badou-Turing.git - 更新老师侧的代码, 即从源仓库更新同步代码, 并合并到本地
git fetch upstream
git merge upstream/master - 更新并合并自己远程仓库的代码
git pull origin master - 向自己的远程推送刚才同步源仓库后的代码
git push