轻量级前端框架助力开发者提升项目效率与性能
718
2022-08-27
git learn (1)
版本库(代码仓库)
分布式版本控制系统git是用C写的。 本机器上的Git仓库配置(用户名和Email地址)
$ git config --global user.name "userName"$ git config --global user.email "email@**.com"
版本库(代码仓库)repository git可以跟踪文件的修改操作,任何时候都能追踪历史并还原。 二进制文件只能知道是否改动了,但是改动了什么是无法获知的。word就是二进制格式。 字符设置最好是UTF-8 windows的记事本编辑文件时会在文件的开头加上0xefbbbf(十六进制)的字符。
创建一个版本库:
[~]$ mkdir git_test[~]$ cd git_test[git_test]$ git init
管理组员
查看组内成员所有的情况:
$ cat /etc/groupman:x:15: #group_name:passwd:GID:user_list#查看某一个组内的所有成员:$ cat /etc/group |grep groupnameedemon:x:1000:sambashare:x:128:edemon# 第四列如果什么都没有表明该组内组名组员就是唯一的成员。$ sudo groupadd jordan #添加组#先将新成员加入组,再设置密码。不然会提示,用户已存在 $ sudo useradd -G jordan y1 # 添加组成员y1$ sudo passwd y1 $ sudo groupdel jordan #删除组jordan$ sudo vim /etc/group #编辑文件/etc/group,可以删除某一个组内的成员
文件操作
向仓库中添加文件 (add + commit):
$ git config --global user.name "username"$ git config --global user.email "email"$ vim test.txt$ lstest.txt$ git add test.txt$ git commit -m "add test.txt file"[master(根提交) bd36aeb] add test.txt file 1 file changed, 2 insertions(+) create mode 100644 test.txt
分布式系统
分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,工作的时候就不需要联网了。分布式版本控制系统通常也有一台充当“中央服务器”的电脑,用来方便“交换”大家的修改。
修改文件并提交
git status 查看当前git的状态
$ git status# 位于分支 master# 无文件要提交,干净的工作区$ lstest.txt$ vim test.txt // 修改test.txt$ git add test.txt$ git status# 位于分支 master# 要提交的变更:# (使用 "git reset HEAD
可以用git diff查看改动的内容
注意,在commit之前查看!
$ git diff test.txtdiff --git a/test.txt b/test.txtindex 01bc9f2..62c2a74 100644--- a/test.txt+++ b/test.txt@@ -1,2 +1,2 @@-hello, this is a test file.+hello, world. this is a test file.
查看git日志
$ git logcommit c76ada5b16f28252b7cf7950f5803f1535618d2fAuthor: username
改动版本到任意阶段
回到过去:
$ git reset --hard bd36aebc6854d6ac // hard参数后面添加commit的ID号即可
此时再查看日志,就不包含“未来”的记录了:
$ git logcommit bd36aebc6854d6ac6ae19318437b5a66534e4137Author: username
为了穿越到未来,可以使用 git reflog
$ git reflogbd36aeb HEAD@{0}: reset: moving to bd36aebc6854d6acc76ada5 HEAD@{1}: commit: 3rd change9c04872 HEAD@{2}: commit: change and commit test.txtbd36aeb HEAD@{3}: commit (initial): add test.txt file
第一列就是commit id 返回未来:
$ git reset --hard c76ada5HEAD 现在位于 c76ada5 3rd change$ cat test.txthello, world. this is a test file.all server for git.this is 3rd chenge.
暂存区与工作区
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。 文件提交的两步: 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区; // 实现多次修改,一次提交 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
删除文件
当我们删除工作区的文件,和版本库中的文件情况不符,使用git status可以发现提示信息:
$ git status# 位于分支 master# 尚未暂存以备提交的变更:# (使用 "git add/rm
修改尚未加入提交(使用 “git add” 和/或 “git commit -a”) 查看工作区的文件已经删除:
$ rm t.txt$ lstest.txt
可以通过git checkout
$ git checkout -- t.txt$ lstest.txt t.txt
也可以彻底删除:
$ git rm t.txtrm 't.txt'$ lstest.txt
git管理的是文件的修改,所以我们可以多次修改,多次git add,最后一次性的 git commit -m "message"
关联远程库github
GitHub创建一个Git仓库,让备份的github和本地仓库同步。 GitHub官网,右上角创建repository.
公钥的目录:
edemon@ubuntu:~/.ssh$ ls -a. .. id_rsa id_rsa.pub known_hosts
一个常见的问题: fatal: remote origin already exists. 解决方法: $ git remote rm origin
push
命令行传送文件至远程库:
echo "# wei_workspace" >> README.md #建立一个说明文件git initgit add README.mdgit commit -m "first commit" #提交文件git remote add origin push -u origin master #传送文件到远程库,并且-u将本地的master分支和远程库的master分支关联起来$ git push origin master #之后不用-u参数了,已经关联了。
clone
克隆一个仓库: git clone git@github.com:×××/wei_workspace.git ~/wei_workspace
注意到这两种地址格式是不同的,git@github.com:×××/wei_workspace.git是ssh的, 速度慢,每次推送都必须输入口令.
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~