About 3 min

title: centos7安装git服务器 date: 2018-09-20 22:50:11 tags: git categories: linux

常用git命令

  git status //查看git状态
  git remote -v //查看所有原点
  git stash  // 暂存,遇到pull代码冲突的时候,可以先暂存代码之后,在进行pull
  git stash pop // 返回到之前暂存的版本并删除之前的暂存版本
  git push origin master --force  //强制上传,将本地代码覆盖掉远程代码
  // 删除远程分支
  git push origin --delete BranchName 
  // 删除本地分支
  git branch -d BranchName
  // 报错:SSL_ERROR_SYSCALL in connection to github.com:443
  git config --global --unset http.proxy
  // 将某个提交记录代码合并到当前分支
  git cherry-pick <commitHash>

linux安装git,并配置仓库

1.安装git,查看版本号

  yum install -y git
  git --version

2.创建git用户

   useradd git //创建用户
   password git  //更改密码

3.初始化git仓库,并改变仓库权限

    cd /home/git
    mkdir -p test.git  //创建仓库
    git init --bare test.git  //初始化
    chown -R git:git test.git  //改变权限

4.克隆仓库到本地

  git clone git@119.10.15.56:/home/git/test.git

本地git与远程git交互

1.本地初始化git,并上传

  git init //初始化
  git add test.txt  //增加文件到暂存区
  git commit -m '注释'  //提交文件到本地仓库
  git remote rm origin //删除之前的remote
  git remote add origin git@119.106.185.58:/home/test.git  //添加远程起源
  git push origin master  //通过origin原点添加master分支到远程git仓库

2.更新a

  git pull origin master  //取回origin主机的master分支,与本地当前分支合并

3.常用上传

  git add -A  //将所有的新文件添加到暂存区
  git add test.txt  //增加文件到暂存区
  git commit -m '注释'  //提交文件到本地仓库
  git commit  -a -m '注释'  //将所有的文件提交到本地仓库
  git push origin master  //通过origin原点添加master分支到远程git仓库

分支

  git branch //看看分支 
  git checkout aaa //切换分支aaa 
  git branch aaa //创建aaa分支 
  git checkout -b aaa //本地创建 aaa分支,同时切换到aaa分支。只有提交的时候才会在服务端上创建一个分支
  git pull origin master //更新指定分支
  git branch -vv // 查看分支跟踪的远程分支
  git branch -v  // 分支信息
  git branch --no-merged // 查看尚未合并的工作
  git merge iss53  // 将iss53合并到当前分支
  
  
  // 创建自己的分支并切换到自己的分支
  git checkout -b Branch.gaoqisen.20200825
  // 更新dev分支代码到自己的分支
  git pull origin dev
  // 冲突解决
  git checkout bbb
  git merge aaa
  git push origin bbb

更详细的解释open in new window

问题解决

// 冲突问题Merging is not possible because you have unmerged files
git add -u
git commit -m ''
git pull origin dev

git钩子自动执行更新

1.在初始化git仓库里面找到hooks文件夹,并在里面创建钩子文件

  vim post-receive //用vim创建文件
  chmod 755 post-receive  // 更改执行权限

2.编辑自动执行脚本

 #!/bin/sh
 ## 你需要部署的项目路径。注意文件夹的权限问题
 PATH=/home/fileDir/   
 cd $PATH 
 ## git的hooks里面默认有一些环境变量,导致无论在哪个语句之后执行git命令都会有默认环境路径,直接unset掉默认的环境变量就好
 unset $(git rev-parse --local-env-vars)  
 ## 更新项目
 /usr/bin/git pull   
 ## 切换到root用户身份执行自己的脚本
 sudo /home/sh/git_hook.sh   
 
 
 ## 注意:该命令需要在/etc/sudoers 大概91行左右的root ... (添加是需要改变文件的写权限,否则无法添加)下面添加:
 git   ALL=(ALL)  NOPASSWD:/home/sh/git_hook.sh

3.服务器克隆本地git仓库代码

 ```
 git clone /home/test.git  
 ```

暂时需要使用到的命令就这些。以后遇到了在增加

Last update:
Contributors: gaoqisen