ContOSgit
Yum install –y epel-releasegithub
Yum install –y gitshell
Ubuntu编程
Sudo apt-get install git服务器
Windows上安装app
https://git-scm.com/download/winssh
安装完成之后还须要最后一步设置spa
git config --global user.name "Qiang"//好比Qiang.net
git config --global user.email "zqwang121@sina.com"//写入到你的邮箱3d
Mkdir /home/gitroot //建立目录
Cd /home/gitroot //进入目录
Git init //用命令初始化。让这个目录编程git能够管理的仓库
Ls –a //能够看到.git目录
Echo –e “QIANG”>1.txt //建立一个文件1.txt
Git add 1.txt //把1.txt添加到仓库中
Git commit –m “add new file 1.txt” //add完了必需要conmit才算真正把文件提交到git仓库里
Echo –e “QIANG QIANG”>> 1.txt //更改1.txt
Git status //查看当前仓库中的状态,好比是否有改动文件
Git checkout --1.txt//将仓库中的1.txt覆盖本地的1.txt
Git diff 1.txt /能够对比1.txt本次修改了什么内容,相比仓库里面的版本
1. git add .
2. git commit -m "updata all"
3. git push
屡次更改1.txt 并进行git add,git commit操做
Git log //能够查看全部提交git仓库的仓库记录操做
Git log –pretty=oneline 一行一行显示
经过git log能够查看到过去提交的全部版本,因此根据这个log能够指定回退某个版本
Git reset –hard d03da70182c1e78d04df1d7eee2f6a972ae4f82b //能够回退该版本,这里是长字符串,能够简写(前5个字符)
Git reflog //能够显示全部的版本
当修改1.txt 发现修改的不对,想修改上一次提交的状态
Git checkout –1.txt//恢复到上一次提交的状态
若是1.txt修改完成,保存后,git add 1.txt了 可是没有git commit,再想回退到上一次提交是的状态,可使用
Git reset HEAD 1.txt
而后再
Git checkout –1.txt
Echo “QIANG” >2.txt
Git add 2.txt
Git commit –m “add new file 2.txt”
Rm –f 2.txt
Git status
Git rm 2.txt
Git commit –m “delete 2.txt”//完全删除2.txt
1.先注册一个免费的仓库https://github.com/或https://git.oschina.net/
2.权限认证,添加key
github :Setting->SSH and GPG keys->new SSH key->title和key输入进去
oschina:我的资料->SSH公钥->添加公钥->标题和公钥输入进入
生成密钥对:ssh-keygen
Liunx: Cat /root/.ssh/id_rsa
Cat /root/.ssh/id_rsa.pub //公钥
Windwos:Cat c:/Users/Cmd/.ssh/id_rsa
Cat c:/Users/Cmd/.ssh/id_rsa.pub
添加成功收到邮件
3.建立一个建立连接仓库
3.1 Mkdir /home/gitroot //建立目录
3.2 Cd /home/gitroot //进入目录
3.3 Git init //用命令初始化。让这个目录编程git能够管理的仓库
3.4 git remote add origin 仓库地址
git remote add origin git@git.oschina.net:zhiqiangwang/Qiang.git
3.4.1 origin是你的仓库的别名 能够随便改,但请务必不要与已有的仓库别名冲突
3.4.2仓库地址通常来说支持
3.5 Echo –e “QIANG”>Qiang.txt //新建Qiang.txt
3.6 git add Qiang.txt
3.7 git commit –m “add Qiang.txt”
3.8 git push –u origin master //把本地的Qiang仓库推送到远程Qiang
或者git push origin master或者git push origin master -f(强制推送)
3.9 Echo –e “QIANG QIANG”>>Qiang.txt //在Qiang.txt后面追加QIANG QIANG
3.10 git add Qiang.txt
3.11 git commit –m “update Qiang.txt”
3.12 git push //把本地的Qiang仓库再次推送到远程Qiang
克隆一个远程的仓库
Git clone git@git.oschina.net:zhiqiangwang/Qiang.git
Git branch 查看分支
Git branch wang 建立分支
git checkout wang 切换wang分支
Git merge wang //把wang分支合并到master
合并常见的问题
1. 若是master分支和wang分支都对Qiang.txt进行编辑,当合并时提示冲突,许先解决冲突才能够继续合并
2. 解决冲突的方法就是在master分支下,编辑Qiang.txt,改成wang分支里面的Qiang.txt的内容,而后提交Qiang.txt,在进行合并
3. 若是master分支更改的内容是咱们想要的,能够编辑Qiang.txt内容,改成想要的而后提交,切换到wang分支,而后合并 master分支到wang分支便可。Merge后面跟的分支名字必定是最新的分支
4. Git branch –d wang //删除分支
5. Git branch –D wang /若是分支没有合并,强制删除
Master分支是很是重要的,线上发布代码的时候才用到这个分支
Dev分支就是专门用于开发的,重要发布线上以前才会把dev分支合并到master
开发人员应该才dev的基础上在分支成我的分支,我的分支里面开发代码,而后合并到dev分支
在dev分支合并bob分支命令就是
Git checkout dev //先切换dev分支
Git merge bob
在wang 分支编辑wang.txt
去zhi分支修复bug,因此须要先git add wang.txt
而后 git stash保留现场
再切换zhi分支修复,修复完bug以后,在切回wang分支
Git stash list能够查看咱们保留过的现场
Git stash apply 恢复现场
Git syash apply stash@{0} 恢复到指定现场
git remote –v //查看远程库信息
git ls-remote origin//查看远程分支
推送本地分支wang到远程分支 wang并创建关联关系
a. 远程已有wang分支而且已经关联本地分支wang且本地已经切换到wang
git push
b. 远程已有wang分支但未关联本地分支wang且本地已经切换到wang
git push -u origin /wang
c. 远程没有有wang分支并,本地已经切换到wang
git push origin wang: wang
删除本地分支
git branch –d|-D wang
删除远程分支
git push origin :wang
git branch -m | -M oldbranch newbranch 重命名分支,若是newbranch名字分支已经存在,则须要使用-M强制重命名,不然,使用-m进行重命名。
标签类是于快照功能,给一个版本库打一个标签,记录某个时刻的状态,也能够随时恢复该状态
1. git checkout master 先切换master上
2. git tag v1.0 给master打上一个标签v1.0
3. git tag 查看全部的标签
4. git log –-pretty=oneline –-abbrev-commit//查看历史commit
5. git tag v0.9 d03da//针对历史commit打标签
6. git tag –a –m “tag just v1.1” d03da//能够对标签进行描述
7. git tag –d v0.8删除标签
8. git push origin v1.0//推送到指定标签远程
9. git push --tag origin//推送全部标签
10. git tag –d//删除本地标签
11. git push origin : refs/tags/v1.0删除远程标签
1. Yum install git
2. 添加git用户,并设置shell为/usr/bin/git-shell,目的是为了避免让git用户远程登陆
Useradd –s /usr/bin/git-shell
3. Cd /home/git
4. 建立authorized_keys文件,更改属主,属组合权限,用于存客户端机器上的公钥
5. Mkdir.ssh
6. ssh-keygen //使用该命令生成密钥对
7. touch authorized_keys
8. cat /home/git/id_rsa.pub>>/home/git/.ssh/authorized_keys.
9. Chown –R git.ssh或者Chown 600 .ssh/authorized_keys
10. 定义存储git仓库的目录 /data/gitroot
Mkdir /data/gitroot
Cd /data/gitroot
11. Git init –bare sample.git //建立一个裸仓库,裸仓库没有工做区,由于服务器上的git仓库纯粹为了贡献,因此不让用户登陆到服务器上改工做区,而且服务器上的git仓库经过以.git结尾
12. Chown –R git.git sample.git
以上操做是在git服务器上作的,平时git服务器不西药开发人员登陆去修改代码,他仅仅是充当一个服务器的角色,就像github同样,平时都是在咱们本身的pc上作的
在客户端上克隆远程仓库
Git clone git@ip:/data/gitroot/sample.git
此时能够进入sample目录下,这个就是咱们克隆远程仓库。进入到这里面进行开发,而后push到远程
全栈工程师技术QQ交流群:368683534