【拉代码】
$ git clone git@10.0.128.104:scm/megatronrepo.git -b megatron_v_1_5_0 xiaoma(所在路径下克隆到的地方(相等于新建))
注释:先要切换到code目录下
megatron_v_1_5_0 为选择的库上的分支点,xiaoma为把代码拉倒当前路径下的这个文件件(就是新建)
或者 在某个路径下 直接
git clone git@10.0.128.104:scm/megatronrepo.git megatron_v_1_5_0
cd 进入到目录下 然后拉服务器代码
git clone git@gitlab.chinascope.net:soledede.weng/cloud-parent.git
【搭建Git服务器】
让本地可以连接远程仓库
ssh-keygen -t rsa -C "your_email"
如:ssh-keygen -t rsa -C "fenglei.ma@chinascopefinancial.com"
ssh-keygen-trsa 三个回车,ssh的密钥生成,默认保存在 C:\Users\用户\.ssh,
在.ssh/下的id_rsa.pub即为密匙文件;
然后找到.ssh目录 ,把id_rsa.pug 公钥 复制到key文本框中 ,填上任意的Title(自动生成)
拉取代码如果需要输入密码 可以进行一下操作,以后再也不用输入密码
修改配置文件
在 cd ~/.ssh 目录下新建一个config文件 (如果有则不需要新建)
touch config
添加内容:
# 比如是用fenglei.ma@chinascope.com生成的密钥
# 拉取的代码 git clone git@192.168.250.206:project_personal/cloud-parent.git
Host 192.168.250.206
HostName 192.168.250.206
User fenglei.ma
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
【颜色】
git status 查看当前状态
红色说明是改变的或新增的但还没有加入到本地缓存区
绿色说明已经添加到了本地缓存区,但是还没有提交到服务器
所有提交代码只能提价缓存区里面 的,不在缓存区里面的要先加入到缓存区
【修改本地的地址】
git config --global user.name "v-mafenglei" //我的地址为v-mafenglei
【主目录下查看配置文件】
cat .git/config
查看当前的公钥
cd .ssh
ls
cat id_rsa.pub
【提交增加的文件】
git pull 拉下最新的代码
git add git/core/op/CommitOperation.java 添加到缓存区,准备提交
git status 查看当前状态
git commit git/core/op/CommitOperation.java -m '增加文件' 提交缓存区的文件
git status
git push origin master 把master分支推送到服务器
git pull 更新代码
注释:
git add . 全部添加到缓存区
git commit -a -m '新增加文件' 提交缓存区的所有文件
或git commit -m '修改了内容'
【撤销】
git checkout -- biz/src/main/java/com/pajk/scm/lionking/git/core/op/CloneOperation.java 撤销工作区某个文件
git checkout *.java 撤销工作区所有java文件
git checkout . 撤销工作区所有修改
git reset core/op/CloneOperation.java 撤销缓存区的修改,重新放回到工作区
git reset 撤销缓存区的所有修改
【查看某个文件修改的内容】
git diff web/src/main/webapp/project.jsp
退出 按Q 或crtl+z
gitk 通过命令弹框 查看所有操作和修改
远程仓库的默认名称是origin。
【创建一个版本库】
$ mkdir learngit
$ cd learngit cd d:\code\m
$ pwd
ls
pwd命令用于显示当前目录。这个仓库位于/Users/michael/learngit。
第二步,通过git init命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),
细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版
本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
【】
从缓存区中撤销某个文件 git rm --cached xx.txt
查看提交历史 git log
查看历史命令 history
查看那命令历史 git refog
要关联一个远程库,使用命令 git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令 git push -u origin master 第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令 git push origin master 推送最新修改;
【分支操作】
git branch 查看当前分支
git checkout megatron_v_1_4_0 切换到这个分支
git merge dev 把dev 合并到当前分支
git branch -d 分支名 删除分支
git remote -v 查看远程库信息
新建分支:
git branch $branchname 注意在哪个分支上执行就是基于哪个分支新建
git push origin $branchname 把分支推到服务器仓库
例:创建mafenglei分支,兵切换到分支 git checkout -b mafenglei
也可以先创建,在切换 git branch dev
git checkout dev
删除:
git branch -D $branchname 删除本地的分支
git branch-rd origin/$branchname 删除服务器仓库分支
git push origin:$branchname 注意冒号
git remote pruneorigin 同步远端已删除分支
【】
把本地库的所有内容推送到远程库 git push -u origin master
注意:
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,
还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
【查看那工作区和版本库里面最新版本的区别】
git diff HEAD -- readme.txt
【】
删除本地库某个文件 git rm readme.txt (回复删除的文件 git checkout -- readme.txt)
不管建立什么文件夹和文件,都要add缓存区,然后commit ,然后在push
不管建立什么文件夹 ,都要init 变为可管理的创库
add 文件夹时 ,要出来当前add的这个文件夹
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
合并指定分支到当前分支
丢弃一个没有被合并过的分支,可以通过 git branch -D <name>强行删除。
远程仓库的默认名称是origin。
【推送分支】
推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:
$ git push origin mafenglei
如果要推送其他分支,比如dev,就改成:
$ git push origin dev
但是,并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?
master分支是主分支,因此要时刻与远程同步;
dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。
注意: 如果推送失败,先用git pull 抓取远程新的提交,在 git push origin mafenglei
总之,就是在Git中,分支完全可以在本地自己藏着玩,是否推送,视你的心情而定!
你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支:
$ git checkout -b dev origin/dev
现在,他就可以在dev上继续修改,然后,时不时地把dev分支push到远程:
你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支:
$ git checkout -b dev origin/dev
现在,他就可以在dev上继续修改,然后,时不时地把dev分支push到远程:
查看远程库信息,使用git remote -v;
可以试着删除 index.lock
rm -rf ./.git/index.lock
rm -rf .git/ 删除 .git目录及下面所有的文件
touch fenglei.test 建立一个文件
工作树 本地仓库 远程仓库
1 1 1
1 --commit--> 1 1
1 1 1
1 1 --push --> 1
1 1 1
1 1 <--pull -- 1
1 1 1