1.Centos安装及配置
2.生成ssh-key
# 生成ssh key,公钥添加到gitlab,用于账号认证。生成过一次就不需要再次生成了。
$ ssh-keygen
# 运行命令后,按3次回车即可
# 拷贝公钥文件
$ cat ~/.ssh/id_rsa.pub
3.clone仓库
4.配置
#配置用户信息(邮箱用公司邮箱)
$ git config --global user.name <username>
$ git config --global user.email <email>
5.增加/删除文件
# 添加文件到暂存区
$ git add <file1> <file2>
# 添加目录到暂存区
$ git add <dir>
# 添加当前目录下所有已修改和未跟踪文件到暂存区
$ git add .
# 删除文件,同时删除本地和暂存区文件
$ git rm <file>
# 将文件从暂存区删除,保留工作区文件
$ git rm --cached/staged <file>
# 重命名文件
$ git mv <file> <file-new>
# 忽略原来未改变的文件权限
$ git config --add core.filemode false
$ git checkout vendor/
6.提交代码
# 提交暂存区内容到本地仓库
$ git commit -m <"message">
# 跳过暂存区,提交本地所有修改到本地仓库(不包含新添加的文件)
$ git commit -am <"message">
# 追加提交,上一次修改漏提了一个文件
# 如果上一次提交后代码没有变化,此命令可以改写上一次的提交日志
$ git commit --amend -m <"message">
7.分支
# 列出所有本地分支,"*"号开头的为当前分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 列出所有本地分支和远程分支
$ git branch -a
# 切换分支
$ git checkout <branch_name>
# 以本地分支当前状态,新建分支并检出该新分支(未提交的修改也将带到新分支)
$ git checkout -b <branch_name>
# 以远程分支新建本地分支,检出该分支,并和远程分支建立跟踪关系
$ git checkout -b <branch_name> <remote_name>/<remote_branch>
# 例如: git checkout -b FEA/BUG-002 origin/FEA/BUG-002
# 切换到上一个分支
$ git checkout -
# 建立当前分支与远程分支的跟踪关系
$ git branch --set-upstream-to=<remote_name>/<branch_name>
# 例如: git branch --set-upstream-to=origin/develop
# 合并本地分支到当前分支
$ git merge <branch_name>
# 合并远程分支到当前分支
# 合并前,先要执行git pull/fetch
$ git merge <remote_name>/<branch_name>
# 删除本地分支(只能删除已合并分支)
$ git branch -d <branch_name>
8.标签
# 列出所有tag
$ git tag
# 从指定commit新建tag
$ git tag <tag_name> <commit>
# 删除本地tag
$ git tag -d <tag_name>
# 推送指定tag
$ git push <remote_name> <tag_name>
# 推送所有tag
$ git push --tags <remote_name>
# 以指定tag新建分支
$ git checkout -b <branch_name> <tag_name>
9.远程同步
# 下载所有远程仓库更新
$ git fetch <remote_name>
# 例如: git fetch origin
# 显示远程仓库地址
$ git remote -v
# 显示指定远程仓库信息,包括有哪些远程分支等
$ git remote show <remote_name>
# 添加远程仓库
$ git remote add <remote_name> <url>
# 清理远程分支
$ git remote prune <remote_name>
# 如果远程仓库删除了某些分支,此命令会将远程分支从本地列表中删除
# 拉取远程仓库指定分支的更新,并合并到当前分支
$ git pull <remote_name> <branch_name>
# 例如: git pull origin master
# 此命令会拉取origin仓库所有更新,并合并最新远程master到当前分支
# 推送本地分支到远程仓库
$ git push <remote_name> <branch_name>
# 例如: git push origin master
# 此命令推送当前master分支到远程仓库
# 推送所有分支到远程仓库
$ git push --all <remote_name>
10.撤销
# 取消工作区文件的修改
$ git checkout -- <file>
# 将指定文件从暂存区撤出
$ git reset -- <file>
11.设置忽略列表
# 新建一个名为.gitignore文件,可将此文件提交到git仓库,语法如下:
*~ #忽略所有以波浪号(~)结尾的文件
*.a #忽略所有以.a结尾的文件
!lib.a #但lib.a除外
/TODO #仅忽略项目根目录下的TODO文件,不包含subdir/TODO
build/ #忽略build/目录下的所有文件
doc/*.txt #忽略doc/notes.txt,但不包括doc/server/arch.txt