首页 > 其他 > 详细

GIT 学习笔记

时间:2019-07-01 16:55:31      阅读:80      评论:0      收藏:0      [点我收藏+]
系统版本:CentOS Linux release 7.6.1810
ip:192.168.3.58

git 的安装(1)

//依赖库安装
2. # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
3. # yum install gcc perl-ExtUtils-MakeMaker

//卸载低版本的 Git
4. # yum remove git

//下载新版的 Git 源码包(我放的了  /usr/local/git 的目录下了,git是我自己mkdir的目录)
5. # cd git
6. # wget https://github.com/git/git/archive/v2.9.2.tar.gz
7. # tar -xzvf v2.9.2.tar.gz

git 的安装(2)


# cd git-2.9.2
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install

git 的安装(3)

vim /etc/profile  
export PATH="/usr/local/git/bin:$PATH"

source /etc/profile

ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack 
ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack 

groupadd git
useradd git -g git
passwd git 

cd /home/git/
mkdir .ssh #新建文件夹
chmod 700 .ssh 
touch .ssh/authorized_keys  #新建文件
chmod 600 .ssh/authorized_keys

git config --global user.name ‘用户名‘
git config --global user.email ‘邮箱地址‘
cat ~/.gitconfig(配置信息)
设置系统用户

ssh-keygen -t rsa -C "git邮箱"

ssh -T -v git@github.com (测试连接)

git的基本使用命令

1.mkdir demo
   cd  demo
     git init   初始化仓库

2.git config  user.name ‘用户名‘
   git config  user.email ‘邮箱地址‘
     cat .git/config
     创建仓库用户

3.git status (git的情况)
On branch master
nothing to commit(没有提交的文件), working tree clean(没有文件可以操作)

4.touch 1.txt
5.git status
    On branch master
    Untracked files:
     (use "git add <file>..." to include in what will be committed)(添加文件到暂存区)

        1.txt

 nothing added to commit but untracked files present (use "git add" to track)

6.git add 1.txt  (添加到暂存区)
7.[root@ansible demo]# git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   1.txt

8.git rm --cached 1.txt(从暂存区撤回文件)
9.[root@ansible demo]# git commit 1.txt(从暂存区提交到本地仓库)
[master e188f9f]      第三次提交
 1 file changed, 0 insertions(+), 0 deletions(-)(一个文件有变动,增加0行,减少0行)
 create mode 100644 1.txt   (编号)

10.[root@ansible demo]# vim 1.txt
[root@ansible demo]# git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   1.txt

no changes added to commit (use "git add" and/or "git commit -a")(你可以add在commit,也可以直接commit,因为这是我做过修改的文件)

11.[root@ansible demo]# git commit 1.txt -m‘1.txt追加‘(-m  ‘添加本次提交的描述信息‘)
[master 240925b] 1.txt追加
 1 file changed, 1 insertion(+)

12.[root@ansible demo]# git log(查看日志)
commit 240925b819e16e5fe8c78eea0f03b77c87779e17(hash索引,索引的内容为下面的信息)
Author: ding <ding@163.com>(提交者)
Date:   Tue Jun 25 12:07:47 2019 +0800(时间时区)

    1.txt追加

commit e188f9f91ee2783777cf86107d0b9bf9732bbcef
Author: ding <ding@163.com>
Date:   Tue Jun 25 11:58:29 2019 +0800

13[root@ansible demo]# git log --pretty=oneline
240925b819e16e5fe8c78eea0f03b77c87779e17 1.txt追加
e188f9f91ee2783777cf86107d0b9bf9732bbcef      第三次提交
d864fa6441ba254ac7efa075ff92f5a477e3d1e0 ceshi1
0faa007d4f0aa882e073f1f82f33eba494b8f467 测试提交

[root@ansible demo]# git log --oneline
240925b 1.txt追加
e188f9f      第三次提交
d864fa6 ceshi1
0faa007 测试提交

[root@ansible demo]# git reflog(head@{移动几步到当前版本})
240925b HEAD@{0}: commit: 1.txt追加
e188f9f HEAD@{1}: commit: 第三次提交
d864fa6 HEAD@{2}: commit: ceshi1
0faa007 HEAD@{3}: commit (initial): 测试提交

14.版本的前进后退(通过HEAD指针控制)默认的HEAD指向最后一次提交
15.[root@ansible demo]# git reset --hard d864fa6(基于索引前进后退) (推荐)
HEAD is now at d864fa6 ceshi1
[root@ansible demo]# git reflog
d864fa6 HEAD@{0}: reset: moving to d864fa6
240925b HEAD@{1}: commit: 1.txt追加
e188f9f HEAD@{2}: commit: 第三次提交
d864fa6 HEAD@{3}: commit: ceshi1
0faa007 HEAD@{4}: commit (initial): 测试提交

15.[root@ansible demo]# git reset --hard HEAD^  (后退一个版本,几个^回退几个版本)
16.[root@ansible demo]# git reset --hard HEAD~2 (后退2个版本,~后面的数字表示回退版本个数)

17.git reset --soft    (表示本地库变动,缓存和工作区都不变动)
18.git reset --mixed   (表示本地库和缓存发生变动,工作区不变)

19.git diff HEAD [文件名](查看文件修改内容)
20.git diff HEAD^ [文件名](查看文件遇上一个版本的改变)
21.git diff (查看现有工作区修改记录)
22.git diff HEAD (查看所有修改记录)

git diff : 对比工作区(未 git add)和暂存区(git add 之后)
git diff --cached: 对比暂存区(git add 之后)和版本库(git commit 之后)
git diff HEAD:  对比工作区(未 git add)和版本库(git commit 之后)

23.gti branch -v (查看分支)
24.git checkout [分支名]   (切换主分支)
25.git branch [分支名]  (创建分支)

26.两个分支合并前,相同文件同一行有不相同的文件内容,合并时会产生冲突。改成想要的文件内容,删除特殊符号。再次git add 文件,然后git merge -m‘版本信息‘不要加文件名
命令小结:
1.git status(查看工作区和暂存区)
2.git add 「filename」(添加文件到暂存区)
3git commit [filename] -m ‘描述信息’(提交文件到本地库并且添加描述)

GIT 远程库

建立一个github‘账号
新建一个项目
本地git remote add origin https://github.com/bob-dpx/doupo.git (取一个别名)

[root@ansible doupo]# git remote -v(查看远程库)
origin  https://github.com/bob-dpx/doupo.git (fetch)
origin  https://github.com/bob-dpx/doupo.git (push)

[root@ansible doupo]# git push origin master(推送本地分支)
Username for ‘https://github.com‘: bob-dpx
Password for ‘https://bob-dpx@github.com‘:
Counting objects: 3, done.
Writing objects: 100% (3/3), 221 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/bob-dpx/doupo.git
 * [new branch]      master -> master

[root@ansible doupo_yaol]# git clone https://github.com/bob-dpx/doupo.git(克隆到本地)
Cloning into ‘doupo‘...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
Checking connectivity... done.

[root@ansible doupo_yaol]# ls
doupo
[root@ansible doupo_yaol]# cd doupo/
[root@ansible doupo]# ls
yanmeng.txt
[root@ansible doupo]# cat yanmeng.txt
盟主:萧炎
[root@ansible doupo]# cat .git/      (无需在初始化本地库,clone已经帮助我们初始化了)
branches/    description  hooks/       info/        objects/     refs/
config       HEAD         index        logs/        packed-refs
[root@ansible doupo_yaol]# git remote -v  (clone连别名都建好了)
origin  git@github.com:bob-dpx/gitspace.git (fetch)
origin  git@github.com:bob-dpx/gitspace.git (push)

[root@ansible doupo]# git fetch origin master  (下载远程分支)
[root@ansible doupo]# git checkout origin/master (切换到远程分支查看修改内容)
[root@ansible doupo]# git merge origin/master  (合并分支)
[root@ansible doupo]# git pull origin master  (合并远程分支)

GIT 加入新成员

github里点击:setting——>Collaborators——>输入邀请的成员名字,赋值link里的地址
被邀请的成员登录github,粘贴link的地址,选择同一加入

GIT 邀请其他团队来工作

其他团队的队长:fork一份自己的分支,在里面做修改,然后点击pull request——>new pull request ——>create pull request——>等待被合并

自己这边:——> pull request——>files changed(查看做了哪些修改)——>merge  pull request合并代码

在centos7.6 搭建gitlab

1.在gitlab官网上下载软件包
https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm
下载完毕后使用md5sum 校验文件完整性

2.编写脚本
rpm-ivh gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm
yum install -y curl policycoreutils-python openssh-server cronie
lokkit -s http -s ssh
yum install postfix
service postfix start
chkconfig postfix on
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce

3.初始化程序
gitlab-ctl reconfigure(一般在4分钟内)

4.页面访问即可

GIT 学习笔记

原文:https://blog.51cto.com/13293172/2415800

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!