一、安装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输入密码问题