Git常用命令
git 设置和取消代理
git config --global https.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
git config --global --unset http.proxy
git config --global --unset https.proxy
Git-server配置
建立一个 git 用户负责 Git 的管理:
$ useradd -m -s /bin/bash git
建立 Git 仓库目录:
$ mkdir -p /git/repos
$ chown git:git /git/repos
Git-client配置
在 git-client 机器上为开发者创建帐户,git-client1 上建立用户 user1,git-client2 上建立用户 user2,如:
$ useradd -m -s /bin/bash user1
user1 和 user2 都通过 ssh 共用 git-server 上的 git 帐户,这是最简单的 ssh 使用方式。
为了方便,user1 和 user2 都将自己的公钥放到 git-server 上,就不用每次输入密码了:
$ ssh-keygen
$ sh-copy-id git@git-server
使用示例
在 git-server 上创建一个裸版本库:
$ git init --bare /git/repos/test.git
这时 test.git 是一个空的版本库,我们可以将它 clone 到本地,或者也可以将本地已经初始化的 git 推送到该版本库,比如:
$ git init
$ git remote add orgin git@git-server:/git/repos/test.git
$ git push origin master
当需要克隆版本库时做如下操作:
$ git clone git@git-server:/git/repos/test.git
常用命令介绍
配置 Git 基本信息:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
$ git config --global -l
创建新的 Git 仓库:
$ git init
检出仓库:
$ git clone /path/to/repository
$ git clone username@host:/path/to/repository
添加与提交:
$ git add <filename>
$ git add *
$ git commit -m "代码提交信息"
推送改动:
$ git remote add origin <server>
$ git push origin master
分支操作:
//创建一个新分支
$ git branch feature_x
//创建一个叫做“feature_x”的分支,并切换过去
$ git checkout -b feature_x
//切换回主分支:
$ git checkout master
//查看分支
$ git branch -l
//删除分支
$ git branch -d feature_x
更新与合并:
//获取并合并远端的改动
$ git pull
//合并其他分支到你的当前分支
$ git merge <branch>
标签:
//创建标签
$ git tag -a v1.0 -m "Version 1.0"
//推送tag
$ git push origin v1.0
撤销本地改动:
$ git checkout -- <filename>
$ git reset --hard commitId
.gitignore的使用
.gitignore 只能忽略那些原来没有被 track 的文件,如果某些文件已经被纳入了版本管理中,则修改 .gitignore 是无效的。
为了能重新忽略那些已经被 track 的文件,例如停止 tracking 一个文件但是又不从仓库中删除它。可以使用以下命令:
$ git rm --cached filename
上面这个命令用于删除单个缓存文件。
删除缓存目录使用以下命令:
$ git rm -rf --cached foldername
如果你想忽略的文件或者文件夹比较多,无法一个一个的删除。
重置所有缓存,提交后刷新忽略文件(下面这种方法经过测试,可行) 运行命令:
$ git rm -r --cached .
上面这个命令将会移除所有的缓存索引,然后运行再运行以下命令添加所有的文件:
$ git add .
$ git commit -m “.gitignore is now working”
合并时支持忽略部分文件
- 实现 dev 分支根目录下的文件 demo.txt,不合并到 master 分支上;
- 实现 dev 分支文件 /common/src/main/resources/demo.yml,不合并到 master 分支上;
首先在根目录下运行命令,启用忽略文件设置:
git config merge.ours.driver true
在 dev 分支上建立 .gitattributes 文件并提交,内容如下:
demo.txt merge=ours
/common/src/main/resources/demo.yml merge=ours
切换到 master 分支上,执行 merge 操作:
git checkout master
git merge dev
如果 dev 的某个文件修改不需要合并到 master ,则 master 的文件修改时间必须在 dev 的修改时间之后。 在示例中,需要先修改 dev 分支的文件并提交,再修改 master 的文件并提交,然后合并。