git命令-2

1、把暂存区内容回滚的工作区,回退到上一个版本
$ git reset HEAD text.txt
2、撤销修改:1. 文件在添加到缓存区前修改,则回退到原工作区状
态;
$ git checkout -- text.txt
3、查看历史提交记录
$ git log
4、回退到历史指定版本
$  git reset --hard ae0e2a5385a11917816b3f161adc19f7e53ba845
5、清空本地文件text.txt
$ git rm text.txt
6、从暂存区直接删除文件
rm -cacheed
7、除当前目录下的所有文件及目录,命令行为:
rm  -r  * 
$ git rm --cached text.txt
8、将文件提交到仓库(把暂存区的所有内容提交到当前分支)
$ git commit -m "wrote a readme.txt." 
9、确认删除后,提交到版本库
$ git commit -m "remove test.txt" 
10、将文件提交到仓库(把暂存区的所有内容提交到当前分支)
$ git commit -m "wrote a readme.txt." 
11、一次性提交3个文件
$ git commit -m "add 3 files." 
12、将文件提交到仓库,并注释内容
git commit -m "delete bash demo" 
13、git提交代码出现错误fatal: Unable to create '项目路
径/.git/index.lock': File exists.在.git上级目录操作
rm -f ./.Git/index.lock
-----------------------------------
14、远程仓库新建ssh
$ ssh-keygen -t rsa -C "[email protected]"
15、回到当前目录的主目录
 cd ~
16、回到主目录
$ pwd
17、显示.ssh
cd .ssh
18、查看详细信息
$ ll
19、查看公钥内容,文件内容
$ cat id_rsa.pub
20、查看是否github是否连接成功
$ ssh -T [email protected]
21、直接跳转到指定子目录
$ cd /f/gitdemo
22、查看所有文件
$ ls -a
23、新增一个文件.md
$ echo“#newdemo”>> README.md
24、查看详细信息
$ ll
25、初始化git
$ git init
26、追加文件到缓存区
$ git add README.md
27、提交到本地库
$ git commit -m "first commit"
28、关联远程库
$ git remote add origin
https://github.com/liminga/newdemo.git
29、追加内容到远程,第二次不用-u
$ git push -u origin master
30、文本追加内容
$ vim README.md
31、退出文本
Esc :wq
32、追加到缓存
$ git add README.md
32、提交到本地库
$ git commit -m "second commit "
33、追加到远程库
$ git push
--------------------------------
// 4.6 多人协作(最好结合工作场景理解)

git remote -v // 查看远程库详细信息

git push origin dev // push本地dev分支到远程dev

git push origin master // push本地master分支到远程master(时刻保持同步)

git pull // 将最新的pull/dev(master)爬下来

git checkout -b branch-name origin/branch-name // 在本地创建和远程分支对应的分支

git branch --set-upstream-to=origin/<branch> dev // 建立本地分支和远程分支的关联

// 4.7 Rebase

git rebase // 将本地未push的分支提交整理成直线,利于查看
--------------------------------
34、克隆仓库
git clone https://github.com/liminga/clone_demo.git
34-2、以Https协议方式克隆
$ git clone https://github.com/ChrisLeejing/gitskills.git 
35、新增一个txt文件,内容为clone demo
$ echo "clone demo" >> clone.txt
36、追加到远程库
$ git push
----------------------------------
标签管理
37、查看所有标签
git tag
38、创建标签
git tag v1.0.1
39、指定提交信息
git tag -a name -m "comment"
40、删除标签name
git tag -d v2.0.1
41、标签发布v1.0.1
git push origin v1.0.1
42、切换到标签与切换分支命令相同
git checkout [tagname]
43、从远程删除。删除命令也是push,但是格式如下:
$ git push origin  :refs/tags/v1.0.1
--------------------------------------------
分支管理
44、创建文件夹Git
$ mkdir Git 
45、查看所有分支(当前分支以‘*’标记)
git branch 
46、创建分支(如:git branch dev)
git branch <name>
47、切换分支
git checkout <name> 
48、创建切换分支(如:git checkout -b dev)
git checkout -b <name>
49、合并分支到当前分支上
git merge <name>
49-2、合并分支到master分支上
git checkout master
git merge <name>
50、删除该分支
git branch -d <name>
51、查看分支合并图
git log --graph 
52、查看分支合并缩略图
git log --graph --pretty=oneline --abbrev-commit

----------------------------------------------------------------------------------------

git

1、下载地址  window git
https://git-scm.com/download/win

2、配置用户信息
用户名称:$ git config  --global user.name "tyler"
用户地址:$ git config  --global user.email "[email protected]"
2-1查看用户名和邮箱地址:
$ git config user.name
$ git config user.email
3、初始化版本库
- git init
4、添加文件到版本库
- git add
- git commit 
5、查看仓库状态
- git status

6、命令
显示当前所在位置
    $pwd
建立时间详细信息
    $ ll
到上级目录 
    $ cd ..
到d盘 
    $ cd /d
创建文件夹
    $ ls
回到刚才的目录
    $ cd -
清屏
    $ clear
查看git版本
    $ git --version
显示目录下内容
    $ ls -ltr
创建temp目录
    $ mkdir temp
    $ cd temp
    $ pwd
git初始化
    $ git init
查看生成的隐藏文件
    $ ls -a
生成文件
    $ echo "git repo2" >> test.txt
    $ ll
展示当前文件内的内容
    $ cat test.txt
--提交,并m注释
    $ git commit -m "Init Project"    
查看当前文件状态
    $ git status
查看.git内的文件
    $ ls -l .git
配置全局的用户名和邮箱信息
    $ git config --global user.name 'Wenjie Zhang'
    $ git config --global user.email '[email protected]'
回到软件的系统工作目录
    $ cd ~
--查看.gitconfig的内容
    $ cat.gitconfig
--显示用户信息
    $ id
--查看 .git下的内容
    $ ls -l .git
--查看配置后的内容
    $ cat .git/config
    $ pwd
    $ ls -l
--增加main.c到git中
    $ git add main.c
--提交,并m注释
    $ git commit -m "Init Project"
--创建文件
    vi main.c
    int main()
    {
        return 0;
    }
    ls -l
--查看.git的目录内容
    $ ls -l .git
--删除刚刚提交的main.c文件
    $ rm -f main.c
--确认没有了
    $ ls -ltr
    $ ls -l
    $ ls -la
--使用git恢复main.c文件
    git checkout -f HEAD
--查看是否恢复成功
    ls -l
--创建新的文件夹ccc,进入到ccc文件夹
    mkdir ccc
    cd ccc
--拷贝bbb下的main.c文件到当前目录
    cp ../bbb/main.c .
--查看确认
    ls -ltr
--初始化git
    git init    
--查看main.c的内容
    cat main.c
--查看main.c的hash值
    git hash-object main.c
--添加当前文件夹的内容到git中
    git add .
--显示.git下的内容
    ls -l .git
--显示.git/objects下的内容
    ls -l .git/objects/
--显示.git/objects/fc下的内容,实际上是main.c的hash的头两个字母
    ls -l .git/objects/fc
--提交,并注释
git commit -m "1 commit"
    clear
    ls -l .git/objects/
--找到.git/objects/下所有类型为文件的对象
    find .git/objects/ -type f
--显示fc047f开头的文件的内容
    git show fc047f
--查看0593开头的文件的类型
    git cat-file -t 0593
    clear
    find .git/objects/ -type f
--查看commit类型文件的内容
    git show -s --pretty=raw 2364

------------------------------------------------------------------------------
--演示多文件,多目录下的blob和tree和commit的数量
    --新建ddd文件夹
    mkdir ddd
    cd ddd
    --新建 lib文件夹
    mkdir lib
    cd lib
    --新建inc文件夹
    mkdir inc
    cd inc
    ls
    --inc下创建 trick.rb文件 
    vi trick.rb
    sssssss
    :x
    cd ..
--lib下创建mylib.rb文件
    vi mylib.rb
    this is mylib.rb
    :x
    cd ..
--ddd下创建见READE文件
    vi README
    this is ReadMe
    :x
--初始化,添加,提交
    git init
    git add .
    git commit -m "this is first commit"
--查看生成的文件数,应该是3个blob文件3个tree文件1个commit文件
    find .git/objects/ -type f
    git cat-file -t ****
    cd ..
-------------------------------------
--研究HEAD对象
--创建eee文件夹
    mkdir eee
    cd eee
--拷贝ddd的文件过来
    cp ../ddd/README .
    clear
--确认拷贝
    ls -ltr
--初始化
    git init
--添加
    git add .
--提交
    it commit -m "this is first commit"
--显示文件下的对像
    ls -l .git/objects/
--显示对象为文件的对象
    find .git/objects/ -type f
    ls -l .git
--查看HEAD的内容
    cat .git/HEAD
    ls -l .git/refs/
    ls -l .git/refs/heads/
--HEAD的内容是一个引用,查看指向的内容
    cat .git/refs/heads/master
--指向的内容是那个对象的hash码
    find .git/objects/ -type f
--查看该对象的类型,应该为commit
git cat-file -t ****
----------------------------
--研究tag,有引用和对象两种形式
--进到ddd文件夹
    cd ddd
    ls -l
--查看当前生成的对象数,7
    find .git/objects/ -type f | wc -l
--修改最底层的文件
    vi /ddd/lib/ind.trick.rb
    *****
    :x
    pwd
--添加提交
    git commit -a -m "second commit"
----查看当前生成的对象数,12
    find .git/objects/ -type f | wc -l
    ls -l .git
    ls -l .git/refs/tags
轻量级的tags
    git tag v1.0
    ls -l .git/refs/tags
    cat .git/refs/tags/v1.0
--查看标签指向对象类型
    git cat-file -t ****
    --commit
--查看当前生成的对象数,还是12,没有生成标签对象
    find .git/objects/ -type f | wc -l
--打标签,这个会生成标签对象
    git tag -a milestone1.0 -m "this is the first stable version"
--查看当前生成的对象数,13
    find .git/objects/ -type f | wc -l
    ls -l .git/refs/tags/
--查看标签内容
    cat .git/refs/tags/milestone1.0
--查看标签指向对象,为tag
    find .git/objects/ -type f
    git cat-file -t ****
    --tag
--再次修改文件
        vi init.rb
        ....
--第三次打标签
    git commit -a -m "third commit"
----查看当前生成的对象数
    find .git/objects/ -type f | wc -l
--查看头文件内容
    cat .git/HEAD
    cat .git/refs/heads/master
    cat .git/refs/tags/v1.0
--头文件还是指向的最新的commit对象
    git cat-file -t df87
    --commit
    git cat-file -t 9e7b
    --commit
    cat init.rb
--发布tag为v1.0时的版本,格式为tar,目录在ruby下,用gzip加压,生成在/tmp//tmp/ruby1.0.tar.gz下
    git archive --format=tar --prefix=ruby/ v1.0 | gzip > /tmp/ruby1.0.tar.gz
    cd /tmp
    ls -l
-检验生成的结果
    tar zxvf ruby1.0.tar.gz

-----------------------------
pwd
ls -l
ls -la
--初始化,加载,提交
    git init
    git add .
    git commit -m "1st commit"
--查看文件个数
    find .git/objects/ -type f | wc -l
--查看分支情况
    git branch
    clear
--查看头文件
    ls -l .git/HEAD
    cat .git/HEAD
    cat .git/refs/heads/master
--指向的文件类型
    git cat-file -t ****
--修改文件
    vi test.rb
--第二次提交
    git commit -a -m "2nd commit"
--修改文件
    vi README
--第三次提交
    git commit -a -m "3rd commit"
--产生testing分支
    git branch testing
--查看头引用指向
    cat .git/HEAD
    ls -l .git/refs/heads
--查看两个分支的指向,是一样的
    cat .git/refs/heads/master
    cat .git/refs/heads/testing
    git breach
--切换分支
    git checkout testing
    git breach
--查看头文件指向
    cat .git/HEAD
    clear
    git breach
    ls
--修改test.rb文件
    vi test.rb
--第四次提交
    git commit -a -m "testing 4th commit"
--查看当前的HEAD引用
    cat .git/HEAD
--查看当前的testing和master分支,应该已经不同了
    cat .git/refs/heads/testing
    cat .git/refs/heads/master
    cat test.rb
--切换到master分支
    git branch
    git checkout master
--显示test.rb文件
    cat test.rb
--切回到testing分支
    git branch
    git checkout testing
    git branch
    cat test.rb
    clear
--切回到master分支
    git branch
    git checkout master
    ls
-修改LICENSE2文件
    vi LICENSE2
    --master第四次提交
    git commit -a -m "master 4th commit"
    clear
--合并前master情况
    git branch
    ls -l
    cat LICENSE2
    cat test.rb
    cat README
--合并前testing情况
    git checkout testing
    cat LICENSE2
    cat test.rb
    cat README
    clear
--合并
    git branch
    git checkout master
    git merge testing
    clear
    ls
    ls -l
--合并后的情况
    cat LICENSE2
    cat test.rb
    cat README
--删除testing分支
    git branch
    it branch -D testing
    git branch
    clear
    cd ..
    ls
--创建新的工作区
    mkdir fw
    cd fw
    ls
    vi main.c
    ls
    git init
    git add .
    git commit -m "1st commit"
    ls
    ls -l
--创建tempbr分支
    git branch
    git branch tempbr
    git checkout tempbr
--分支的文件已经改变,提交
    vi main.c
    git commit -a -m "tempbr 2nd commit"
--master分支没有变化
    git branch
    git checkout master
    cat main.c
--此时合并更容易
    git merge tempbr

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章