建立git仓库
首先需要系统上有安装git,无论你是linux还是windows,安装好后cd到需要建立git仓库的目录下执行:
git init | 当前目录作为Git仓库,初始化
git init --bare | 初始化一个裸仓库,仅用于记录git提交的历史信息,可以利用hook实现仓库和代码分离
这两者的区别可以去百度一下或者参考这篇文章:git init 与git init --bare
仓库和代码分离参考:如何用git 实时更新线上项目代码
git 提交代码步骤
* git add . | 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
* git add -u | git add --update缩写 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
1. git add -A | git add --all的缩写 提交所有变更,包含以上两种功能
2. git commit -m"备注"
3. git pull | 拉取远端分支代码 (为了不影响远端代码建议先拉取再推送)
4. git push | 当前分支只有一个远程分支,主机名都可以省略
git push 格式:
git push <远程主机名> <本地分支名>:<远程分支名> | :前后必须没有空格的
git push origin master |省略远程分支名,表示本地分支有存在"追踪关系"的远程分支(两个分支同名),如果该远程分支不存在,则会被新建;
* 删除远程仓库的分支 (省略本地分支推送会删除远程同名分支)
git push origin :master |如果省略本地分支名,表示删除指定的远程分支,这等同于推送一个空的本地分支到远程分支。
* 等同于
git push origin --delete master
Git branch 分支
git 的一个重要功能分支,它可以为我们带来许多方便,每个分支就相当于一个版本的代码库,方便多人协作。
当涉及到多分支的时候建议使用git操作工具:sourcetree 或者 tortoiseGit 等,比较方便处理冲突等问题。
在git init 的时候默认分配了一个主分支master。那要如何创建分支?
git branch tester |创建一个分支名为test的分支, 格式:git branch <branchname>
git branch dev |创建一个分支名为dev的分支
git push origin dev:dev | 新建的本地分支push到远程服务器(远程与本地同名),这样就创建了远程分支dev
查看分支:
git branch -r |查看远程分支名
git branch |列出本地的分支
git branch -a |查看所有分支(本地和远程)
切换分支:
git checkout dev | 从当前分支切换到dev分支,格式: git checkout <branchname>
删除分支
git branch -d tester | 删除 tester分支
分支合并
git checkout master |切换到master分支
git merge dev | 把dev分支合并到当前分支
具体的操作实例可参考菜鸟的教程:Git 分支管理
git 回滚:
git revert -n 需要撤销的版本号 | 撤销某个版本的提交,并新建一个 “回退版本”
git commit -m"回退版本"
git push | 将回退版本提交,这样就可以撤销指定版本的代码了
这里有篇git 回滚操作的文章写得很清晰:
Git 忽略提交 .gitignore
在使用Git的过程中,有一些不需要提交到代码仓库,这就要建立忽略规则,来忽略这些文件的提交。
规则作用例子:
/vendor | 过滤整个文件夹
*.log | 过滤所有.log 文件
/mtk/do.c | 过滤某个具体文件
!/mtk/one.txt | 追踪某个文件(不过滤)
git 对于 .gitignore配置文件是按行从上到下进行规则匹配的
如果你创建.gitignore文件之前就执行了push操作,那么即使你在.gitignore文件中写入该过滤规则,该规则也不会起作用,git仍然会对该文件进行版本管理。所以要在部署的时候就要先建立好 .gitignore 文件
配置语法
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录。
.gitignore规则不生效解决方法
方法一:(谨慎使用)
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
方法二:(推荐)
删除本地的代码,重新拉取一次所有代码,然后填写.gitignore (要在 get pull 之前)
git clone 克隆
git clone git://github.com/**/**.git | 克隆格式 git clone <url>
git clone git://github.com/*/project.git myproject | 克隆代码重命名为myproject
一些其他操作
git fetch origin master |将远程主机的最新内容拉到本地,不进行合并
git log | 列出历史提交记录
git log --oneline | 查看历史记录的简版
git log --oneline --graph | 显示主分支和自分支git日志
git status | 查看当前git状态信息(查看是否有文件未提交)
git remote | 查看本地添加了哪些远程分支地址
git remote add origin https://xxxxxxxxxxxx.git | 添加远程地址
git branch -m <oldbranch> <newbranch> | 重命名本地分支
git gc | 清理不必要的文件并优化本地存储库