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_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:$ ssh-keygen -t rsa -C "youremail@example.com"
如果一切顺利的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_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