1.git的三种状态,git status命令:modified,staged,commited
2.git安装:1.使用安装包 2.从源码安装(优)
3.配置存放目录: /etc/gitconfig git config命令使用--system选项
~/.gitconfig 用户目录 --global选项
.git/config 当前项目工作目录
4.配置文件编辑器: git config --global core.editor vim
5.配置差异分析 git config --global merge.tool vimdiff
6.查看配置:git config --list
git config user.name
7.帮助:方式一: git help config
方式二:git <verb> --help
方式三:man git-<verb>
基础:
8.取得项目git仓库 1.从已有项目 在项目目录下git init
2.clone git clone git://........... mygrit (mygrit为自定义目录名默认为grit)
9.git add 文件名 纳入版本控制,进入暂存状态
git status 可以查看暂存状态 和未纳入版本控制,修改但未提交的文件
git commit 提交,必须要经过git add的文件才会被提交
10.配置gitignore文件 cat .gitignore 是不是就先用vim创建一个.gitignore文件呢?
11.查看具体修改了哪些地方 git diff 已修改但未暂存和快照的差异
git diff --cached 已暂存和快照间差异
12.提交时加参数:git commit -v (将修改差异的每一行显示到注释)
git commit -m "注释说明"
13.跳过暂存提交:git commit -a 对所有已跟踪的文件暂存并提交
14.删除文件:git rm filename (删除本地并从暂存中删除)提交后不会纳入版本控制了,也可以先手动删除本地文件
git rm -f finlename (已经暂存时加-f)
git rm --cached filename (从暂存中删除)但本地保留
15.移动文件: git mv oldname newname
相当于:mv oldname newnamne
git rm oldname
igt add newname
16.提交历史:git log
gil log -p -2 (还有--stat --pretty常用)
17.查看当前配置有哪些远程仓库, git remote 命令
18.提交到远程仓库:git push origin master origin仓库名,master是分支名
19.标签查看:git tag
分支:
19. git branch branchname20.git checkout branchname
在服务器部署 Git:
21. 克隆纯仓:$ git clone --bare my_project my_project.git
22. 将纯目录转移到服务器(假设一个域名为 git.example.com 的服务器已经架设好,并可以通过 SSH 访问,而你想把所有的 Git仓库储存在 /opt/git 目录下):
$ scp -r my_project.git user@git.example.com:/opt/git
---实战-在服务器部署 Git(服务器为Ubuntu系统)---
ssh登录服务器后:
1.安装:apt-get install git-core
2.创建/home/projects/git 用于存放git仓库
客户端本地:
1. 在本地做一个仓库(也可以找一个已有仓库):
cd /home
mkdir gexiuserver
cd gexiuserver
git init
2.克隆纯仓(gexiuserver是第一步中创建的仓库或是已前的仓库):
cd /home
git clone --bare gexiuserver gexiuserver.git
就可以在/home目录下找到一个gexiuserver.git文件目录了
3.将纯目录转移到服务器:
scp -r gexiuserver.git user@example.com:/home/projects/git
4.使用:
git clone ssh://user@example.com//home/projects/git/gexiuserver.git
cd gexiuserver
get push origin master (第一次push要加仓库与分支名origin master以后就不需要了)
---实战-git忽略已经被提交的文件 ---
转载:http://blog.csdn.net/korekara88730/article/details/45869239
项目初始化时需要提交一些必不可少的代码文件,但是这些代码文件在每个人的机器上又会重新编译一次,并且结果不一样。
这样的话,如果每个人都提交这些文件,实际上是完全没有必要的。
具体到我们项目中,使用 egret 引擎 typescript 语言开发。引擎的 ts 代码会被 "编译" 成 js ,存储在项目的 libs 目录里。
没有这些 js 游戏是跑不了的,但是每个人编译时,由于编译选项不同,每个人的电脑编译出来的 js 里 都会有一些差异。
如果每次都上传这些 js 文件,是完全没必要的。
但是如果每次提交时,都根据目录 避开这些文件的提交, 这种方法又显得很蠢。
这时候需要 .gitignore 了。但是添加了 .gitignore 忽略这些路径后, 由于这个路径是已经增加到过仓库管理中,
所以尽管已经在 ignore 列表里,依然 会被 git trace 到每个文件的变化。
所以,这个时候需要 git rm --cache 来解决这样的问题.
正确的做法应该是:git rm --cached logs/xx.log
,然后更新
.gitignore
忽略掉目标文件,最后
git commit -m "We really don't want Git to track this anymore!"
---实战-关联本地分支到服务器分支 ---
git branch -a 列出所有分支
git checkout -b test (创建并切抽象到test本地分支 即:git branch test 他建test 本地分支 git checkout test 切换到test分支)
git branch --set-upstream-to origin/devtest test (关联本地分支test 到服务器分支devtest)
远程分支在前,本地分支在后。关联之后就可以正常的pull代码了。
对于复杂的系统,我们可能要开好几个分支来开发,那么怎样使用git合并分支呢?
合并步骤:
1、进入要合并的分支(如开发分支合并到master,则进入master目录)
git pull
2、查看所有分支是否都pull下来了
git branch -a
3、使用merge合并开发分支
git merge 分支名
4、查看合并之后的状态
git status
5、有冲突的话,通过IDE解决冲突;
6、解决冲突之后,将冲突文件提交暂存区
git add 冲突文件
7、提交merge之后的结果
git commit
如果不是使用git commit -m "备注" ,那么git会自动将合并的结果作为备注,提交本地仓库;
8、本地仓库代码提交远程仓库
git push
git将分支合并到分支,将master合并到分支的操作步骤是一样的;