git用法

1.git安装:

 

2.创建版本库

  2.1 创建一个目录

  2.2 在该目录下git init创建仓库

3.添加/修改并提交内容

   git add xx

   git commit -m "comment"

3.查看命令

   git status

    git diff xx

    git log (查看版本变化)

    如果log太多,则用git log --pretty=online

 

4.版本回退

  HEAD表示当前版本,^表示HEAD前一个版本,有两种方式回退版本:

 git reset --hard HEAD ^ (回退到当前版本之前的版本)

 git reset --hard CommitID

  git reflog查看命令历史

5. 概念

   工作区:目录

   版本库:工作区里的隐藏目录.git包含:stage或者index的暂存区;master分支;指向master的一个指针HEAD。

                  git add是将内容放入stage,git commit是将stage的数据提交到仓库中。

   工作区、暂存区、仓库。add把工作区的变更同步到暂存区,commit把暂存区的变更同步到仓库。

    git reset HEAD file:把暂存区的修改撤销掉,重新放回工作区

总结:  git diff  -----工作区和暂存区比较

             git diff HEAD  -----工作区和分支比较

6.撤销修改

    git checkout  -- xx (将分支上的xx同步到本地,相当于完成了撤销修改,不管此时修改是在工作去或者缓存区)

    git reset HEAD <file> 是将暂存区里的内容回退到分支同版本,此时工作区的内容不变,和checkout有区别。所以,reset有两个功能:可以回退版本,也可以清空暂存区。

7.删除

   git rm xx

   git commit

实战篇:使用github管理自己的创库

第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:$ ssh-keygen -t rsa -C "youremail@example.com"

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

  

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

第3步:关联git创库:git remote add origin git@github.com:simkong/LearnGit.git

            查看库关联: git remote -v

            删除关联库: git remote rm xx

 

分支管理:

1.创建分支  git branch dev

2.切换分支 git checkout dev

                   git switch -c dev

  创建并切换分支  git checkout -b dev

3.查看分支  git branch

4.将分支merge到master: git merge dev

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

5.删除分支  git branch -d dev

6.查看log:git log --graph --pretty=oneline --abbrev-commit

7.

通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。

如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。

git merge --no-ff -m "xxx" branch

 

8.强制删除分支: 当分支没有merge的时候删除分支会提示失败,如果要强制销毁则用-D

                              git branch -D xx

9.查看远程分区: git remote

                             git remote -v (显示信息更全)

10.推送分支  git push origin master (dev) 将本地分支推送到服务器主分支

11. 多人协作开发公用一个dev分支的时候,需要将本地的dev分支与远程的origin的dev分支关联:

     git checkout -b dev origin/dev

 

=====================标签管理===========

1.创建标签  git tag XX

   如果想在某制定地方打标签,则先用git log --pretty=oneline --abbrev-commit 查看log id,然后在创建tag的时候,将该ID添加上去:

    git tag XX ID

   如果给标签打上说明,则git tag -a VER -m "comment" ID

2.查看标签 git tag

   查看标签信息  git show xx

3.标签删除:git tag -d XX

                  git show

4.推送本地标签: git push origin tagname

   推送全部本地未推送过的标签:git push orgin --tags

    删除远程标签: 要先删除本地标签: git tag -d tagname

                            然后再删除远程标签:git push orign :refs/tags/tagname

 

 

=============小技巧===============

1.配置颜色 : git config --global color.ui true

2.如果需要忽略某些文件比如临时文件等,需要再工作区创建一个文件.gitignore,再该文件中添加需要过滤的文件或者文件夹

  如果需要强制添加也给.gitignore屏蔽的文件,则用git add -f xx

3.配置别名 git config --global alias.CM1 command

   这戏配置被放再.git/config里

 

===============搭建git服务器===============

1.安装git : sudo apt install git

2.创建git账号: sudo adduser git

3.创建登陆证书: 将所有需要登陆的用户的公钥(id_rsa.pub)内容导入到/home/git/.ssh/authroized_keys文件,一行一个

4.初始化仓库:比如/dir/xx.git,则咋/dir下面敲入命令: sudo git init --bare xx.git (没有工作区的裸仓库)

                      将owner改为git: sudo chown -R git:git xx.git

5.禁用ssh登陆: 修改/etc/passwd,将 git:x:1001:1001:,,,:/home/git:/bin/bash修改为git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

 

 

 

 

 

 

git log --graph --pretty=oneline --abbrev-commit
posted @ 2019-11-05 00:15  草帽哥  阅读(121)  评论(0编辑  收藏  举报