Git笔记 (4)

SHA-1校验和(也叫hash,哈希)这里提一句,在git中,文件的存储是通过文件内容计算哈希值(40位十六进制)进行索引的,所以不可能在git不知情的情况下修改文件,确保记录完备,提交更改会产生哈希值记录此次更改。
git log其他常用命令:

git log -n #n是整数,返回最近n次提交历史 git log -p -n #用来显示每次提交的内容差异, -n则返回最近n次提交的差异 git log --stat #列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了。 git log --pretty=format #按照指定格式展示历史 git log --oneline --decorate #显示分支的指向情况,见分支的使用 git log --oneline --decorate --graph --all #输出提交历史、各个分支的指向以及项目的分支分叉情况。

个人觉得git log --pretty=format非常有趣,可以很简洁展示历史,举例来说,我们在终端运行git log --pretty=format:"%h %s",有如下结果:

$ git log --pretty=format:"%h %s" a9b674c add some info 2ae267c fix one error 405cd1b add hello everyone edb1d60 first commit

第一项是简短哈希,第二项是提交说明,非常直观。常见的format如下。

7.jpg-1581.2kB

5.3.4 git rm和git mv

git rm命令用来删除文件,对文件不进行版本管理。git mv命令可以对文件重命名和移动。
使用git rm:

$ git rm README.md rm 'README.md' $ git status On branch master Your branch is ahead of 'origin/master' by 2 commits. (use "git push" to publish your local commits) Changes to be committed: (use "git reset HEAD <file>..." to unstage) deleted: README.md $ git commit -m "delete README.md" [master b976c0a] delete README.md 1 file changed, 1 deletion(-) delete mode 100644 README.md

通过git rm后,可以在playground文件夹中看到README.md文件已经不见了。
常用的git rm命令有:

git rm -r <dirname> #递归删除文件夹中的文件 git rm \*.c #删除所有后缀.c文件 git rm -f filename #强制删除,针对修改并放到暂存区的文件 git rm --cached README #不删除文件,仍然放在目录中,但不进行跟踪

使用git mv(先在playground文件夹新建dd文件夹):

$ git mv hello.py dd/hello.py $ git status On branch master Your branch is ahead of 'origin/master' by 3 commits. (use "git push" to publish your local commits) Changes to be committed: (use "git reset HEAD <file>..." to unstage) renamed: hello.py -> dd/hello.py $ git mv dd/hello.py dd/hello.txt $ git status On branch master Your branch is ahead of 'origin/master' by 3 commits. (use "git push" to publish your local commits) Changes to be committed: (use "git reset HEAD <file>..." to unstage) renamed: hello.py -> dd/hello.txt $ git commit -m "rename hello.py -> hello.txt"

git mv相当于以下三条命令:

$ mv README.md README $ git rm README.md $ git add README

当然,能有简洁的命令当然用简洁的好!

5.3.5 远程命令

这一节涉及到分支,建议跳过这一节,看完分支再过来。
git clone是用来克隆远程仓库到本地;
git remote是用来添加远程仓库,并为远程仓库添加名字缩写;
git push是上传本地仓库到远程仓库中。
git fetch是将远程仓库的更新下载到本地仓库中
git pull是将远程仓库的更新下载到本地仓库中,并进行合并

5.3.5.1 git clone

克隆可以通过https url下载或者ssh url,命令很简单

$ git clone url 5.3.5.2 git remote

git remote add origin git@github.com:FangYang970206/playground.git是用来添加远程仓库的信息到本地,并用一个简短的引用来表示url,命令具体是git remote add <shortname> <url>,也就是我们可以在接下来的git操作中,用origin来代表整个url。
常用命令:

$ git remote -v #显示所有远程仓库的简写和url 5.3.5.3 git push

git push -u origin master是将本地代码上传到github服务器,这句话要拆成两部分解释,第一部分是git push,是上传命令,那上传到那里呢?第二部分-u origin master则是指定上传位置,上传到origin的master分支,这里的-u是设定默认主机,也就是下次你要是也上传到origin的master分支,就直接git push就可以了。
其他命令:

$ git push origin <source>:<destination> #来源和去向可不同

如果想把本地的foo分支推送到远程仓库中的bar分支,则可用这个命令进行指定。

5.3.5.4 git fetch

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppgpw.html