git使用记录

创建一个新的git项目

1. # cd yafei

2. # git init

3. # git add .

4. # git commit

如果修改了项目代码,做如下气操作

1. git add 修改的文件或新增的文件

2. git diff

3. git status

4. git commit

5. git lot

git commit -a 可直接提交所有修改,对新增文件或文件夹无效


分支管理

1. git branch experimental   /新建分支

2. git granch   /列出所有分支

3. git checkout experimental   / 选择分支

4. 在分支中修改文件

5. git commit -a   /提交

6. git checkout master   /选择master分支

7. git merge experimental  /合并到master分支

8. git branch -d experimental   / 删除分支

-d  在分支已经合并到主干后删除

-D 不论如何都删除分支


合作

1.  xiaoqiang: # git clone /home/yafei xiaoqiang    /将项目复制一份到xiaoqiang

2. yafei: # git pull xiaoqiang master   /将小强的master合并到我的当前分支上


任何人使用git 之前,都要提交简单的个人信息,以便区分不同的提交者身份

# git config --global user.name "your name"

# git config --blobal user.email "your email"

git fetch /home/bob/myrepo master:bobworks   /提取出bob修改的代码内容,放到自己工作目录下的bobworks分支中


显示分支信息

1. git show master

    git show experimental

2. git branch stable v3    // 建立一个基于v3的分支

3. git grep "print" v3  // 在v3中搜索所有的包含print的行

    git grep "print"    // 在所有的历史记录中搜索包含print的行 


查询对象数据库

1. git cat-file -t 241e      // -t 列出相应ID的对象类型,241e 是commit 后得到的SHA1码

2. git cat-file commit 241e

3. git ls-tree 9a327

4. git cat-file -t 7d4eof

5. git cat-file blob 7d4eof


commit 对象会指向一个tree对象,即在历史记录中当前结点的tree目录的镜像,也会指向parent commit

tree 对象用于显示一个目录的状态,tree 对象中包含blob对象和子目录

blob 对象包含的是文件的数据

每个分支的head会存储在 .git/refs/heads , 同时,当前所在分支的头部会存储在 .git/HEAD中


查看index file

1. git ls-files --stage

将 current working directory 记为 a

将 index file   记为 b

将git repository 记为 c

他们之间的提交层次关系是  a -> b -> c

git add 完成的是 a -> b

git commit 完成的是 b -> c

git commit -a 完成的是 git add 和 git commit

从时间上看,可以认为 a 是最新的代码,b 比较旧 ,c 更旧

按时间排序就是  a <- b <- c

git diff  得到的是 从 b 到 a 的变化

git diff --cached 得到的是 从 c 到 b 的变化

git diff HEAD  得到的是从  c 到 a 的变化


常量

HEAD    表示最近一次的commit

HEAD^      HEAD父母的信息

HEAD^^    HEAD祖父母的信息

HEAD~4   HEAD上溯4代的信息

HEAD^1   HEAD的第1个父母

HEAD^2  HEAD的第2个父母


给commit 起别名

1. git tag v3 5b888   // 用v3 代替 5b888

2. git reset --hard v0  // 恢复到v0版本

--soft 撤消commit   --mixed 撤消 commit 和 index file  --hard 撤消全部

3. git reset --  test   // 从index file 里删除登记的test

clone 的话,是clone远端的当前分支

 





你可能感兴趣的:(git使用记录)