1. git入门操作
1、基本名词解释
图片 |
---|
名词 | 含义 |
---|---|
index | 索引区,暂存区 |
master | 分支名,每个仓库都有个master,它作为主分支。 |
branch | 其他分支,我们可以把master分支上的代码拷贝一份,重新命名为其他分支名 |
work space | 就是我们的工作区,使用git status就可以看到工作区的内容有无变动 |
responsitory | 仓库,我们将代码写好之后先add,在commit,就提交到我们的本地仓库中 |
remote | 就是远程仓库,git push就提交到远程服务器上。 |
2、与github关联
配置ssh-key
$ ssh-keygen –t rsa –C “comment message” |
1、是因为github使用ssh协议,所以我们需要修改将https协议修改ssh |
2、先执行$ git remote rm origin 移除远程服务器 |
3、再添加远程服务器 $ git remote add < server_name > |
4、在提交的时候建立远程跟踪关系git push --set-upstream |
2、基本命令
命令 | 参数 | 含义 |
git clone支持多种协议,除了HTTP(S)以外,还支持SSH、Git、本地文件协议等 git clone <版本库的网址> <本地目录名> | -o | 指定远程服务器名称 |
-b | 指定clone分支 | |
$ git clone http[s]://example.com/path/to/repo.git/ $ git clone ssh://example.com/path/to/repo.git/ $ git clone git://example.com/path/to/repo.git/ $ git clone /opt/git/project.git | ||
git commit | -m | 后面跟提交的message |
–a | 相当于先操作add | |
-amen | 修改最后一次提交的message | |
git status | -s | 显示简短信息 |
–show-stash | 显示stash内容 | |
-v –v | 相当于git diff | |
--ignored=tranditional | 查看gitignore中被忽略的文件 | |
--ignored=matching | 查看正在被忽略的文件 | |
git add | . | 将当前目录所有文件添加到index中 |
–a | 将所有的修改文件都添加到index中 | |
–u | 更新已经修改过的文件 | |
git push <远程主机名><远程分支名> | -f | 强制推到服务器 |
$ git push origin --delete master 删除远程分支 $ git push origin --tags 推送tag信息 | ||
git pull <远程主机名> <远程分支名> | -p | 同步服务器的信息 |
$ git branch --set-upstream master origin/next 手动建立追踪关系 $ git pull –rebase server_name server_branch:local_branch 使用rebase模式merge代码 | ||
git log | 显示日志 | |
git mv | file_name | 文件重命名 |
git rm | file_name | 文件重命名 |
--cached | 将文件移除追踪,但本地不删除 | |
git checkout | . | 将当前已经提交到缓存区的内容撤销 |
-b branch_name | 创建分支,并且切换到这个分支 |
3、.gitignore文件
这个文件的作用就是让git可以忽略某些不需要管理的文件和文件夹
$ touch .gitignore #创建.gitignore文件 可以在文件写入不想被管理的文件可以用正则符号 Debug* *.obj |
$ git status –ignored #查看gitignored中忽略的文件 |
4、配置文件的操作
1、基本配置项
命令 | 参数 | 含义 |
git config | --list | 列出所有的参数 |
--global | 全局参数 | |
--local | 本地仓库参数 | |
--unset | 取消参数设置 | |
常用的配置项 user.name user.email https.proxy http.proxy core.editor diff.tool | ||
$ git config --global core.editor "\"C:\\Program Files\\Notepad++\\notepad++.exe\"" |
2、配置文件
difftool配置 在~/.gitconfig文件中写入如下配置信息
[diff] prompt = false prompt = false [difftool "tortoisediff"] cmd = \"C:/Program Files/TortoiseGit/bin/TortoiseGitMerge.exe\" -mine $REMOTE -base $LOCAL |
[merge] tool = tortoisemerge prompt = false [mergetool "tortoisemerge"] cmd = \"C:/Program Files/TortoiseGit/bin/TortoiseGitMerge.exe\" -mine $LOCAL -theirs $REMOTE -base $BASE -merged $MERGED |
3、配置git bash编码配置
命令 | 含义 |
---|---|
$ git config --global core.quotepath false | 显示 status 编 |
$ git config --global gui.encoding utf-8 | 图形界面编码 |
$ git config --global i18n.commit.encoding utf-8 | 提交信息编码 |
$ git config --global i18n.logoutput.encoding utf-8 | 输出 log 编码 |