以下是我整理的一些linux系统常用命令
1、Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
注:git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
创建版本库
2、git init 初始化
所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,强烈建议使用标准的UTF-8编码
使用Windows的童鞋要特别注意:
千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。
3、git config --global color.ui true git显示颜色
ssh-keygen -t rsa -C "youremail@example.com" 生成ssh秘钥
4、完整提交流程添加文件到Git仓库
git add 1.txt 提交到缓存区
git commit -m "message" 提交到库
git status 仓库当前的状态
git push 推送到远程仓库
5、查看差异类
git diff 1.txt 查看未提交(add和commit)文件修改内容
git diff HEAD -- 1.txt 查看工作区和版本库里面最新版本的区别
git log 【--pretty=oneline】版本历史记录
6、回退类
git checkout -- 1.txt 丢弃工作区的修改
git reset HEAD 1.txt 撤出暂存区
git reset --hard HEAD^ 回退版本.用HEAD表示当前版本,上一个版本就是HEAD^,当然往上100个版本,所以写成HEAD~100。
git reset --hard ID 回退版本
git reset --hard origin/{master}强制更新代码库
git reflog 操作命令记录
git rm删掉,并且git commit 删除版本库文件
7、要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
8、分支类
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
git merge --no-ff -m "merge with no-ff" dev 合并分支。禁用Fast forward模式,Git就会在merge时生成一个新的commit,从分支历史上就可以看出分支信息
git stash Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list 查看存储的工作
8、恢复存储的工作
git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
git stash pop,恢复的同时把stash内容也删了
你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:
$ git stash apply stash@{0}
9、多人协作的工作模式通常是这样:
首先,可以试图用git push origin <branch-name>推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
git tag <name>就可以打一个新标签:
git tag v0.9 f52c633
git tag查看所有标签:标签不是按时间顺序列出,而是按字母排序的
git show <tagname>查看标签信息
git tag -a v0.1 -m "version 0.1 released" 1094adb 创建带有说明的标签,用-a指定标签名,-m指定说明文字:
10、远程仓库操作
git push origin <tagname>可以推送一个本地标签;
git push origin --tags可以推送全部未推送过的本地标签;
git tag -d <tagname>可以删除一个本地标签;
删除远程(先从本地删除,再删除远程标签)
git push origin :refs/tags/<tagname>可以删除一个远程标签。