git config --global user.name '名称'
git config --global user.email '邮箱'
git config --global credential.helper store # 第一次输入用户名密码后就不需要再次输入密码了
git init #cd进入相应的文件目录后 创建或初始化版本库
git add <文件> #添加文件
git add -f <文件> #强制添加文件 比如已经忽略的文件
git add . #添加全部文件
git commit -m "备注" 提交到版本库
git status #查看是否有文件变动
git diff #查看文件有哪些修改
git log --pretty=oneline #命令显示从最近到最远的提交日志
git reset --hard HEAD^ #返回上一版本 HEAD~100 返回往上100个版
git reset --hard eebb50a #返回到某一版本
git reflog #记录每一次执行的命令
git reset [commit] # 回退
git revert [commit] # 回退后产生新纪录
git checkout -- <文件> #丢弃工作区的修改 撤销到最近一次 commit或add 时的状态 -- 必须有 (也可以把在工作区删除的文件在版本库中还原)
git reset HEAD <文件> #把暂存区的修改撤销掉(unstage),重新放回工作区,当我们用HEAD时,表示最新的版本
git rm <文件> #删除版本库里的文件
##### 链接远程仓库及 SSH Keys #####
1、创建SSH Key 并登陆GitHub,打开“Account settings”,“SSH Keys”页面 添加 add key
ssh-keygen -t rsa -C "xxx@qq.com"
2、线上创建 Create a new repo
3、本地仓库与远程库关联
git remote add origin git@github.com:xxx/git-ceshi.git
4、推送到远程服务器,第一次推送master分支时,加上了-u参数,把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push -u origin master
5、每次本地提交后,只要有必要,就可以使用命令推送最新修改
git push origin master
6、克隆远程仓库到本地
git clone git@github.com:xxx/git-ceshi-skills.git
# git 分支常用命令
# 从当前分支创建一个新分支 并切换
git checkout -b issue
# 提交到远程分支
git push origin issue:issue
# 设置远程分支和本地分支默认关联
git branch --set-upstream-to=origin/issue issue
# 删除本地分支
git branch -d issue
# 删除远程分支
git push --delete origin issue
# 查看远程分支
git branch -r
# 清理本地已在仓库删除的分支
git fetch -p
##### 创建与合并分支 #####
1、创建+切换分支
git checkout -b dev
2、创建分支
git branch dev
3、切换分支
git checkout dev
4、查看分支
git branch
5、合并某分支到当前分支
git merge dev
6、删除指定分支
git branch -d dev
7、强行删除为合并分支
git branch -D <name>
#查看分支合并图
git log --graph --pretty=oneline --abbrev-commit #用git log --graph命令可以看到分支合并图
#合并分支 加上--no-ff参数就可以用普通模式合并 能看出来曾经做过合并
git merge --no-ff -m 'master --no-ff' dev
##### Bug分支 #####
1、隐藏的现场
git stash #把当前工作现场“储藏”起来
2、查看隐藏的现场
git stash list
3、恢复现场 一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除
git stash apply #另一种方式是用git stash pop,恢复的同时把stash内容也删了
4、恢复指定的stash
git stash apply stash@{0}
##### 标签管理 #####
1、创建标签
git tag v1.0
git tag v0.9 <commit id>
2、查看标签
git tag
3、查看标签信息
git show v0.9
4、创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -a v0.1 -m 'version 0.1 released' 34e7e9e
5、通过-s用私钥签名一个标签
git tag -s v0.2 -m 'version 0.2 released' 4e78011
6、推送某个标签到远程
gir push origin v1.0
7、推送全部标签
git push origin --tags
8、删除标签
git tag -d v0.2
9、删除远程标签
git push origin :refs/tags/vo.2
#删除远程库链接
git remote rm origin
测试链接码云
##### 忽略特殊文件 #####
不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore
忽略某些文件时,需要编写 .gitignore
.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!
可能是.gitignore 写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查
git check-ignore
##### 配置别名 #####
git config global alias.st status
git config global alias.co checkout
git config global alias.ci commit
git config global alias.br branch
每个仓库的Git配置文件都放在.git/config文件中
而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中
##### 搭建Git服务器 #####
1、安装
yum install -y git
2、查看
git --version
3、创建管理账号
useradd git
4、创建证书登录 /home/git/.ssh/authorized_keys
收集所有需要登录的用户的公钥,就是他们自己的 id_rsa.pub 文件,把所有公钥导入到 /home/git/.ssh/authorized_keys 文件里,一行一个。
如果没有 .ssh/authorized_keys 就自行创建
5、初始化Git仓库 并 创建裸仓库
先选定一个目录作为Git仓库,假定是 /git/gittest.git,在/git/目录下输入命令
git init --bare gittest.git
chown -R git:git sample.git
6、禁用shell登录 编辑 /etc/passwd 文件
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
7、本地克隆远程仓库
git clone git@xxx:/git/gittest.git