git

一、安装git

sudo yum install git(红帽系统)

 

二、安装完成后,还需要最后一步设置,在命令行输入

git config --global user.name "your_user"

git config --global user.email “your_user_email”

 因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址(指的是自己注册git的账号和邮箱)

三、  创建版本库

 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来

 每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

 所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录

 第一步:创建一个空目录

mkdir Quality_Control_Scripts

cd Quality_Control_Scripts

 第二步,通过git init命令把这个目录变成Git可以管理的仓库:

git init # 会有下面的提示
# Initialized empty Git repository in Quality_Control_Scripts/.git/

 告诉你是一个空的仓库(empty Git repository),可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了

 如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见

 第三步,用命令git add告诉Git,把文件添加到仓库:比如我有一个代码文件Data_Integrity.py,一定要放在第一步建立的目录下面

git add Data_Integrity.py
# 执行上面的命令,没有任何显示,这就对了

git add . 
# 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录

 第四步,用命令git commit告诉Git,把文件提交到仓库:

git commit -m "add file Data_Integrity.py"

# -m后是说明信息,方便阅读

 为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如

git add file1.txt
git add file2.txt file3.txt
git commit -m "add 3 files."

 git status命令可以让我们时刻掌握仓库当前的状态,比如某个文件被修改过了,但还没有准备提交的修改。

 git diff顾名思义就是查看difference

四、使用git将本地项目上传到Gitlab

 1)本地安装git:https://gitforwindows.org/

 2)在gitlab上创建项目,填写项目名称,选择项目访问权限,private为授权的组员才能访问

 3)打开待上传代码所在文件夹,将项目IDE配置信息删除(这样是为了保证IDE配置信息不会上传到Gitlab中, 也可以使用命令行在上传时将配置文件过滤, 个人觉得可视化删除方便些)

 4)在待上传的项目代码路径下鼠标右键打开git bash here,然后执行下面的操作

git config --global user.name "username"
git config --global user.email "email_address"
git init
git remote add origin 你刚才建立的项目连接,如:
git remote add origin http://your_address/*.git

 有时候出现下面的提升:fatal: remote origin already exists.

 可以先执行:git remote rm origin

 然后再:

git remote add origin http://your_address/*.git
git add .
git commit
git config http.postBuffer 524288000 (特别提醒: 此行是在本地设置缓存, 有些项目文件较大, 使用http无法上传,可设置此命令) #注意这里我没有尝试这条命令
git push -u origin master # 将代码推送到gitlab端
# 注意这里用http协议

    注意一:access denied

  执行上面的git push,然后会弹出来输入账号密码的,如果输错,会出现下面的错误信息:

'''
remote: HTTP Basic: Access denied
fatal: Authentication failed for……
'''

 解决办法:

git config --system --unset credential.helper

  之后你在push就会提示输入名称和密码------重要

 注意二:ssh密钥添加

  在git bash窗口运行:ssh-keygen -t rsa -C "email_address" # 自己的邮箱

  连续按3个回车(密码默认为空),得到 id_rsa 和 id_rsa.pub 文件,说明生成成功

  将生成的id_rsa.pub内容添加到gitlab的ssh key中,然后可以向gitlab上传代码

 当自己和伙伴修改了同样的文件,但是伙伴先提交了gitlab上,为了避免git pull把自己本地的覆盖,我们可以这么操作:

git stash #先将本地修改存储起来
git pull #存储后就可以git pull了

 但是pull提示下面的错误:

 我们在pull之前可能进行了stash操作,但是并没有merge,所以我们stash之后需要进行merge操作:

git add -u 
git commit -m"" 
git pull

 然后自己修改后就可以提交到gitlab

git add .
git commit –m "注释"
git config http.postBuffer 524288000# (特别提醒: 此行是在本地设置缓存, 有些项目文件较大, 使用http无法上传,可设置此命令) #注意这里我没有尝试这条命令
git push -u origin master # 将代码推送到gitlab端

五、每次push输入密码问题

 参考这里

原文地址:https://www.cnblogs.com/always-fight/p/11122397.html