工具之git快速入门

Git总结

Git是世界上目前最先进的分布式版本控制系统。下左图表示集中式、下右图表示分布式。Git记录的是每次文件的改动。

     

创建https://github.com/网站账号。

 

git安装】

参考文献:https://help.github.com/articles/set-up-git/#platform-linux

1)$ sudo apt-get install git

2)$ git config --global user.name "YOUR NAME"

3)$ git config --global user.email "YOUR EMAILADDRESS"

关联电脑与github:在用户主目录下运行指令

$ ssh-keygen -t rsa -C XXXX@XXX.com,输入两次密码(可以直接回车),最后将主目录下的.ssh文件夹里的id_rsa.pub文件内所有内容复制到github的SSH keys中,保证代码推送者是主人。

 

【创建版本库】

$ mkdir learngit

$ cd learngit

$ pwd                                                                         %创建git仓库目录

$ git init                                                                    %初始化git仓库(创建.git隐藏文件)

【添加文件到仓库】

$ git add readme.txt                                             %添加文件到git仓库暂存区stage

$ git commit -m "wrote a readme file"            % 保存入git仓库,引号为说明内容

$ git addfile1.txt                                                    %可以分次添加文件

$ git addfile2.txt file3.txt                                    %可以同时添加多个文件

$ git commit -m"add 3 files."

【查看状态】

$ git status                %查看当前工作区和暂存区被修改文件的状态

$ git diff file.txt         % 查看当前工作区与暂存区中某文件的差别

$ git diff HEAD -- file.txt  % 查看当前工作区与分支库中某文件的差别

 

【查看版本库及回退与前进】

git commit指的是版本库前移,git reset指的是在gitcommit的版本库间前进或回退

$ git log [--pretty=oneline]      % 查看仓库中git commit提交的版本库

$ git reflog                                    % 查看版本库移动的记录,即gitcommit/reset的记录

$ git reset --hard 0a6f3fb         % 切换当前版本库,0a6f3fb为commit_id

         $ git checkout -- file.txt             % 使工作区回到上一次git commit或git add的状态

         $ git reset HEAD file.txt           % 是暂存区回到上一次gitadd的状态

         $ git rm file.txt                   %删除分支库中文件,并再次git commit,前移版本库。

 

【远程仓库并关联】

         (1)登入github,Create a newrepo

$ git remote add origin git@server-name:path/repo-name.git     % 关联远程仓库

                               如:git@github.com:lichangqing2611/learngit.git

$ git push -u origin master       % 第一次推送master分支

$ git push origin master           % 之后推送master分支

         $ git push origin master –f       % 强行覆盖推送,若远程仓库与本地不一致

 

(2)若在github中创建repo时创建其他的文件,则需克隆到本地

$ git clone git@server-name:path/repo-name.git          %克隆远程仓库到本地https/ssh

 

【分支管理】

查看分支:git branch

创建分支:git branch<name>

切换分支:git checkout<name>

创建+切换分支:gitcheckout -b <name>,先进入某分支,在创建该分支的分支

合并某分支到当前分支:git merge<name>,通过先checkout到master后再合并某分支

删除分支:git branch -d<name>

         合并的意思并不是文件合并,而是版本前移,合并的是分支。

$ git merge--no-ff -m "merge with no-ff" <name>         % 禁用Fast forward,可以查看分支

         分支管理原则:master分支应该非常稳定,用于发布新版本;平时在各分支下工作,合并各分支

 

正在当前分支工作,但又需要开始其他分支工作,不想提交当前分支版本,使用stash进行管理工作。修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除。当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

$ git stash        % 存储当前工作现场

$ git checkout master               %修复bug

$ git checkout -b <name>

$ ……

$ git add readme.txt

$ git commit -m "fix <name>"

$ git checkout master

$ git merge --no-ff -m "merged bug <name>" <name>

$ git branch -d <name>

$ git checkoutdev             % 切回上一次工作的分支

$ git stash list                    % 列出存储过的工作现场

$ git stash pop                   % 恢复工作现场并删除stash内容   或 

$ git stash apply stash@{0}     %恢复指定的工作现场,并不删除stash内容

$ git stash drop                          % 删除stash内容

 

$ git branch -D <name>            %丢弃一个没有被合并过的分支,需强行删除当前分支

 

【标签管理】

         标签是唯一确定打标签时刻的版本,是静态的,不移动的。

创建标签:$ git tag -a <tagname>-m "version XXX released" commit_id

                                      如:v1.0

查看标签:$ git tag        或              $ git show <tagname>

 

删除一个本地标签:$ git tag -d<tagname>

推送一个本地标签:$ git pushorigin <tagname>

推送全部未推送过的本地标签:$ gitpush origin --tags

删除一个远程标签:$ git pushorigin :refs/tags/<tagname>

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值