git的安装
- 通过git的官网下载页面 git-scm.com/downloads 进行下载自己需要的版本,进行安装,若遇到问题,可自行查阅资料解决。
配置
设置git有两种方式:
1、通过终端命令进行设置简写(其他类似):
git config --global alias.[简写名] "[全称]"
2、通过修改git全局配置文件.gitconfig(平台不同文件位置有所不同,如下图所示进行添加;具体可百度)
[user]
email = xxx@xx.com
name = xxx
[merge]
tool = vimdiff
[mergetool]
keepBackup = false //不保留冲突解决产生的*.orig文件
[core]
editor = vim
quotepath = false //正确显示中文名,不显示八进制文件名
[color]
ui = auto //git输出着色,增加区分度
[alias]
st = status
ci = commit
(ps:此处配置只是简写,仅供参考)
- [简写名] = [全称]
- lgd = log --color --graph --decorate --oneline
- lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen (%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
- lgall = log --color --graph --all --pertty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen (%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
- lgt = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen (%cd) %C(bold blue)<%an>%Creset' --abbrev-commit
- st = status
- co = checkout
- br = branch
- ci = commit
- push = ps
- pul = pl
生成公私密匙配置库
- 生成自己的公私密匙,公密匙给公司git仓库管理员(如果是自己管理的github或者gitee,将公密匙设置进去) ,私密匙自己保存备份。
命令:ssh-keygen -t dsa [ -C "your_email@youremail.com"]
- git仓库成功设置后,如果远程有项目,则可直接克隆下来,然后进行开发;如果远程没有项目,则:
git init //初始化本地仓库
git remote add origin <repository...> //指定远程仓库地址
git push origin master //将本地的项目提交到远程
git常用命令及语义
git clone github.com/用户名/仓库名.git
如果是github等网站上,网站上会有供大家复制的地址,直接克隆;如果是公司自己代码库一般是一个地址,拉取命令:git clone git@192.168.49.219:xxx.git,xxx表示项目名称。
git init
进入目录中,运行命令进行初始化本地仓库,生成.git文件夹。
git status(st)
查看本地修改情况。
git add
本地修改,提交到暂存区;如果想反悔提交的add,可以git checkout ,取消修改内容。
git commit -m "修改提交描述"
将暂存区的数据提交到本地仓库;如果描述写的不对,需要修改时,使用git commit --amend,进入编辑器(vim)进行修改。
git push origin <本地分支名>:<远程分支名>
后面可简写成一个远程分支名(默认本地分支提交),将本地仓库代码提交到远程仓库。
git pull origin <本地分支名>:<远程分支名>
将远程指定仓库代码拉到本地指定分支,并且与本地合并(如果不确定是否有冲突建议用fetch拉,再merge)。
git fetch origin <本地分支名>:<远程分支名>
将远程指定仓库代码拉到本地指定分支,不合并。此处建议方式是建立一个新的分支,将远程代码拉到新的分支上,然后与要合并的分支进行对比,有冲突就解决冲突,没有则直接将新分支的内容merge过来。
git merge dev
将dev分支合并到当前分支[比喻当前在master主分支]。
git log
查看日志,加-p为详细修改;加--name-status为文件列表;加--stat类似前者。
git lgd
图形化查看提交情况。
git lg
图形化带出提交人、提交时间查看提交情况(配置里的简写都很实用)。
git lgd --all
查看所有分支提交情况。
git show [commit ID]
查看某个指定commit ID的修改详情。
git diff [commit ID] [commit ID]
查看两次提交之间的代码差异详情;diff还可以指定文件进行比对。
git branch
显示本地所以分支;如果在后面加参数 -a 则显示本地及远程所有分支。
git checkout -b [branch name]
新建一个分支,并切换过去。基于某个commit ID新建:git checkout [commit ID] -b [branch name];git branch [branch name],新建分支;git checkout dev,切换分支到dev。
git branch [branch name] [copy branch]
基于[copy branch]新建一个新分支,[copy branch]可以是远程分支或者本地,当线上有个新的分支时,你可以基于远程新建一个本地分支,上面的命令可以 git checkout -b [branch name] [copy branch] 这样写。
git branch -d [branch name]
删除指定分支。
git remote get-url [remote-name]
查看远程分支名对应的地址;git remote,查看远程分支名,一般为origin。
git mv [old] [new]
修改文件名称。
git rm [file]
删除文件。
git reset [--] [commit Id]
回退版本,[--]有两个值 --soft --hard,前者表示只是改变了HEAD的指向,本地代码不会变化;后者直接回改变本地源码到了那个版本,指向改变,使用时需谨慎。
git push origin HEAD --force
远程提交回退;(git reset)操作后本地分支被回退了,远程也需要回退;
最后
此文基本是实战中总结得来,部分查询资料所得,如果有什么错误,请指正;如果你觉得有不足的地方,欢迎补充;如果你觉得文章有用,记得点赞收藏,不喜勿喷,谢谢!