GIT的简单命令
1.简单的讲git就是一个用来管理项目的软件,可以通过这个软件对项目进行版本管理,当然要配合远程代码仓库,比如gitee、github、gitlab、腾讯工蜂,这些都是远程的代码仓库,git提供了完善的指令可以实现将本地代码提交到关联的远程仓库,本地代码可以通过git clone的方式拉取远程仓库的代码
gitlab远程仓库项目的创建
设置全局用户名和邮箱地址
git config --global user.name "名字"
git config --global user.email "邮箱账号"
ssh-keygen -t rsa -C "liangrh@sundaytech.cn" -f ~/.ssh/gitlab_id_rsa
设置本地ssh key自定义名字
ssh-keygen -t rsa -C "xxx@qq.com"(设置单个默认名字是id_rsa)
ssh-keygen -t rsa -C "xxx@qq.com" -f ~/.ssh/gitlab_id_rsa(自定义名字)
克隆远程项目新增文件并进行第一次提交
git clone git@sss:xxx/testgitlab.git
cd testgitlab
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
将一个已存在的项目git init然后提交到远程仓库
cd existing_folder
git init
git remote add origin git@sss:xxx/testgitlab.git
git add .
git commit -m "Initial commit"
git push -u origin master
将一个已存在的git本地仓库代码提交到远程仓库
cd existing_repo
git remote rename origin old-origin
git remote add origin git@sss:xxx/testgitlab.git
git push -u origin --all
git push -u origin --tags
配置SSH Key和账号、邮箱信息
任意位置右键—点击“Git Bash Here”,输入:ssh-keygen -t rsa -C ‘注释信息’
其中-t指定密钥类型,这里设置rsa即可,-c是密钥的注释,方便分辨(下面图片使用的邮箱来注释),一路回车即可;
本地仓库的初始创建
第一种方式:在桌面新建文件夹然后右键鼠标git bash here输入git init命令(先装好git软件推荐这里装https://pc.qq.com/搜索git即可),这个文件夹里的任何文件都会被当成本地代码被git缓存起来,第二种方式:在桌面或选定的文件夹中git bash here然后输入命令git clone 你远程仓库的项目地址,初次clone会提示你输入邮箱账号和密码,输入你远程仓库的账号密码即可,项目就被成功克隆下来!()了。
代码的基本管理(按照团队开发提交代码的命令顺序)
一般小组成员都会被组长拉入项目作为项目的开发人员,然后git clone克隆初始的项目结构,接下来你写了一部分的代码然后想提交。
git pull----拉取远程仓库最新代码到本地仓库合并(正常的话会出现Already up-to-date,有冲突就解决冲突)
git status----查看本地那些文件发生了改变新增或删除
git add 发生变化的文件完整路径
git commit -m “对本次提交的代码的一些描述信息”
git pull(在以上命令执行的过程中可能会有其他的成员也进行了代码提交,所以得保持本地代码是处于一个最新的版本再提交,有冲突就解决完冲突然后在将以上步骤重来,所以尽可能避免多人修改同一个文件,避免过多的冲突产生,显示Already up-to-date进行下一步)
git push----将确认修改的代码提交到远程仓库
git 分支
git branch 要新创建分支名字(并没有切换过去只是创建,不同的分支互不干扰,需要时合并git merge)
git checkout 要切换到哪一个分支的名字
常见的git命令
1.创建版本库
git clone url----克隆远程仓库里的项目
git init----初始化本地版本库
2.修改和提交
git status----查看文件状态(新增的文件是一个untracked状态代表未跟踪)
git diff (查看尚未暂存的改动的内容,注意是尚未暂存的改动,不是自上次提交的改动)
git add (写文件名单独跟踪这个文件,写路径跟踪路径下未被gitignore的文件,写.所有改动过的文件全部跟踪)
git mv 旧文件名 新文件名(一条命令实际上是三条命令;mv 旧文件名 新文件名,git rm 旧文件名,git add 新文件名)
git rm --cached 文件名(仅仅撤出暂存区,不删除工作区文件)
git commit -m “描述信息”(提交所有已经add进入暂存区的文件)
git commit --amend(修改最后一次提交,比如commit之后想修改描述信息或少暂存了一个文件)
3.查看提交历史信息
git log (查看提交历史信息)
git log -p 文件名(查看指定文件的提交历史信息)
git blame 文件名 (列表展示此文件提交历史信息)
git log --since=2.weeks(最近两周的所有提交)
4.分支与标签
git branch (展示本地所有分支)
git branch 新的分支名(创建新的分支,但没有切换到此新分支)
git checkout 分支名(切换到这个分支)
git tag (查看所有本地标签)
git tag -d 标签名(删除这个标签)
5.合并与衍合
git merge 分支名 (将这个分支合并到当前的分支)
6.远程仓库的操作
git remote -v (查看远程版本库信息)
git remote add 简写名 url(添加新的远程仓库,简写名代替url)
git push --tags(提交所有标签)
git pull(拉取所有代码并快速合并,git fetch则拉取远程有的本地没有的,并且不会自动合并)
tips:
1.在项目里添加.gitignroe文件,里面可以编写忽略提交文件的规则,比如常见的node_moudels包,项目运行起来产生的运行文件都可以忽略掉,按照需求任何文件都可以被记入忽略规则里,就像黑名单一样。(注意.gitignore配置的忽略文件只针对并没有提交到远程仓库的文件,已经存在于仓库的文件即便配置了忽略,git还是会监控这个文件的修改
如果只是想本地修改文件但又不想git status看到这个文件,那么在.gitignore里配置是无效的,可以执行git update-index --assume-unchanged 文件路径,如果想恢复git对这个文件的监控可以执行git update-index --no-assume-unchanged 文件路径)
2.git add跟踪文件后,想要撤销跟踪,输入命令 git rm --cached 文件名,不会删除工作区的文件,而git rm 文件名会直接删除掉这个文件,也可以git reset HEAD 文件名来撤销暂存但比较危险,工作区里的文件都没有修改可以这样写
3.git checkout – 文件名(将这个文件里的内容还原成最近一次提交时的内容或刚克隆下来的样子)
4.git fetch url (拉取远程仓库中有但本地没有的内容,不会自动合并或修改你当前的工作,需要时必须手动合并)
5.git branch -r (查看远程分支)
git push origin 分支名(在远程仓库创建这个分支)
容还原成最近一次提交时的内容或刚克隆下来的样子)
4.git fetch url (拉取远程仓库中有但本地没有的内容,不会自动合并或修改你当前的工作,需要时必须手动合并)
5.git branch -r (查看远程分支)
git push origin 分支名(在远程仓库创建这个分支)
git pull前输入git push --set-upstream origin 刚才的分支名(设置远程来源分支)