git
git
gitlab
git使用
常用命令
gitlab-ctl status
gitlab-ctl start
gitlab-ctl stop
gitlab-ctl restart
gitlab-ctl tail nginx
一,设置用户信息,用户名和邮箱(比如是谁提交的)
初始化
比如创建git_test项目
cd /opt/ && mkdir git_test&& cd git_test
git init #会生成一个 .git 版本库目录(仓库), 所有 Git 需要的数据和资源都存放在这个目录中。
或
git init git_test #直接生成工作目录和并初始化仓库
git config --global user.name "John Q.Ulsah"
git config --global user.email "ulsah@example.com"
检查配置信息
git config --list
二,初始化仓库
git init
克隆一个项目
ssh方式
git clone git@gitlab.oa.com:user/openDNSname.git,回车.
账号方式
git clone http://userName:password@链接
邮箱的@请替换为%40
克隆分支
git clone -b 分支名 http://1.1.5.4:8081/test/test.git
拉取tag
第一步:将远程代码拉取到本地
git clone -b develop git@gitlab.yopoint.vip:ac/YoPointSwift.git
(如果本地已有代码,可跳过第一步)
第二步:查看tag
git tag
第三步:检出tag
git checkout tagName
然后进入克隆的项目openDNSname
cd openDNSname
git add . ##后面有个点(或文件名),git把所有修改过的文件且已经追踪的文件添加到本地的暂存区
git add --all #(如果有删除)将删除操作提交至暂存区
git commit javaDNS.xml -m "javaDNSname" #将修改的javaDNS.xml文件提单独交到本地仓库
git commit -m "提交所有改动" #提交所有改动
git push
git push -u origin master #提交代码到master分支
git status #查看版本状态,看到新文件,修改过的文件以及被暂存的文件都有哪些,如图;
常用命令
git add 加入暂存(索引区)后面接文件名或一个点.(表示当前项目所有文件),如git add files或git add *.txt ,git add .等
git status 查看状态
git status -s 状态概览
git diff 尚未暂存的文件,文件对比.
git diff --staged 暂存区文件
git commit 提交更新到本地仓库,git commit -m '默认master分支'
git reset 回滚
git rm 从版本库中移除
git rm --cached file 从暂存区中移除
git mv 相当于mv git rm git add三个命令, 用于移动或重命名一个文件、目录、软连接。
git log 查看历史提交信息
git config --list 检查配置信息
分支命令
问题: 如果都在主分支上开发会导致混乱问题
默认在master,要先commit之后才会真正建立master分支,此时才可以建立其它分支
1,查看当前位置
git status
2,创建分支(创建的分支会纪录当前分支状态如当前分支提交信息类似做个快照)
git branch about
3,切换分支
git checkout about ##也就是修改默认指针master,head指向为新建的分支,
4,分支命令
git branch #显示当前分支
git branch -v #详细显示
git branch --merged #查看哪些merge 合并过来的分支
git branch --no-merged #查看哪些没有merge 合并过来的分支
git branch -d testing #删除分支
git checkout #切换分支,准确的讲是切换指针
git checkout -- 文件名 ##对文件修改了进行撤销,例如对某个文件修改了800行可以对该文件撤销到修改之前的状态.
git merge #把分支合并到主分支,先切到主分支再使用git merge 分支名 来合并,把分支文件移到主分支上.
git reset ##回滚,重要
--soft 缓存区和工作目录都不会被改变
--mixed 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
--hard 0sd93f2f ##暂存和本地都回滚(类似删除)
git log
git stash 暂存当前修改的内容,比如修改了文件 ,使用git stash 标记下,然后再修改,发现不对,就可以使用git stash pop返回打标记的位置(注意先用git checkout . 清空工作区)
git tag 打标签
五,远程管理
git clone https://github.com/guohongze/adminset.git ##相当于初始哈
git pull ##从仓库拉取下来,回和本地仓库合并,有点危险
git pull origin dev #拉取分支代码
git fetch ##只拉取代码不和本地仓库合并
git push origin master
git remote
git remote -v
git remote add xxx http://xxx
git remote show origin
git remote rename pb paul
git tag -a v1.0 -m 'abc' #表示开发完的代码,打个标签,相当于做了个快照.
git tag -a v1.4 -m 'my version 1.4‘
git show v1.4
git tag -a v1.2 9fceb02 对历史打标签
git push origin v1.5 将标签推向远程
git push origin --tags 推送多个标签
git checkout -b version2 v2.0.0 检出标签
拉取git的tag操作
先 git clone 整个仓库,然后 git checkout tag_name 就可以取得 tag 对应的代码了。
但是这时候 git 可能会提示你当前处于一个“detached HEAD" 状态,因为 tag 相当于是一个快照,是不能更改它的代码的,如果要在 tag 代码的基础上做修改,你需要一个分支:
git checkout -b branch_name tag_name
这样会从 tag 创建一个分支,然后就和普通的 git 操作一样了。