版本控制之Hg&Git

Hg init                        初始化代码仓库

hg merge R4525      合并R4525代码到当前分支

hg commit -m “info”合并前的提交

hg pull                        拉取分支

hg update                  更新至最新代码

hg addremove          追踪所有的更改文件

hg sum                      当前分支的概要

hg st                          当前分支文件更改状态

hg branch new          创建new分支

hg update new          切换至new分支、

hg clone  Url            克隆一个仓库

hg push

hg revert -a                恢复所有代码,未提交到本地仓库前当前的最新代码

hg rollback                回退到上一个版本

hg revert -r 9db672342f7d --all  回退指定版本

hg branches              查看所有分支

hg update - -clean    删除分支

修改用户名 ~/.hgrc进入这个文件夹 然后修改。$hg config 查看内容

hg resolve --mark  解决冲突后使用这个

Hg config - -edit.  编辑用户名

合并代码:

1.切换到default 2. Pull 3. Update  4. hg merge -t "internal:merge" R3098 5. Commit 6.push 

Add some new from net->

hg status 查看当前仓库中的文件改动状态:

                                           M:内容已改动;

    !(感叹号):版本库还在跟踪该文件,可是本地仓库已经丢失该文件

R:该文件从版本库中删除;

?(问号):本地仓库中新添加的文件,版本库里还没有该文件,需要使用hg add 文件名 添加到版本库中

A:该文件是新添加的

hg remove 文件名 版本系统不再跟踪该文件

  hg revert文件名恢复该文件

状态是!(感叹号)的,需要进行二选一了,是该文件真需要删除了,还是被误删了;若真的需要删除,则使用hg remove 文件名,若被误删了则使用hg revert恢复该文件

hg add . 将所有没有在版本控制系统的文件添加到控制系统中,

hg add 文件名 是将某个文件添加到控制系统中 hg log 查看提交的历史信息

hg commit 将本地的改动进行提交

hg push 将改动推到远程的分支上

hg merge 分支名 将其他分支的代码合并过来

hg diff 查看改动,hg diff 文件名 查看该文件的改动

当前分支拉取当前分支不用merge,直接hg pull -u

取消当前分支的修改回到最初状态时,hg update -C

切换到其他分支且不保留当前分支的修改时,hg update default -C

切换到其他分支且保留当前分支的修改时,hg update default

创建分支时要在default分支上进行创建,这样保证所有的分支没有瓜葛;若在其他的分支上直接创建分支时,则把上一个分支的修改保留了下来,不容易进行拆分;视情况而定

若第一次提交分支时,则使用hg push -b 当前分支名 –new-branch,若已经是第二次以上的提交了则使用hg push -b 当前分支名即可,当然,每次提交时都带着—new-branch也没错

多人合作时需要拉取别人的分支的代码,不要担心,别人的分支和default分支没有任何区别

7.1在default分支上拉取远程的代码并更新本地代码:

  hg pull -u(hg pull, hg update)

7.2在default分支上新建自己的分支:

  hg branch自己的分支名

7.3合并他人的分支:

hg merge他人的分支名

7.4将合并的先提交一下,不然一会儿自己的改动和刚拉取的他人的代码混到一起了:

hg commit -m ‘merge from xiaoming’

7.5进行自己的改动,该修改的修改,该添加的添加,该删除的删除

7.6提交自己的修改:

hg commit -m ‘改动原因或目的’

7.7再拉取下远程的代码,在改动的过程中说不定已经有人更新default分支了,不合并的话,会把别人的提交弄丢:

hg pull -u

hg merge default

hg commit -m ‘merge from default’(若merge default时需要提交)

7.8将自己的代码推送到远程代码库:

hg push -b自己的分支名–new-branch

***********************************************************************

git版本控制命令行

Git init   

Git clone url

Git remote add origin Url    添加一个远程仓库

Git add .                              追踪所有的文件修改 

Git commit -m “info”

Git push -u origin master    如果仓库单一以后就可以push或者pull

Git log                                  显示最近提交的commit

git reset —hard HEAD^      回退到上次提交的,HEAD^^上上次HEAD~100

Git reset —hard fbc614      回退到指定的commit

Git reflog                            查看所有的commit

Git checkout — file            撤销操作还没有add .的时候

Git reset HEAD file            从暂存区退回到工作区针对add .后的操作

Git pull                                拉取更新到最新代码

Git branch -a                    查看所有的分支

git branch                          查看本地分支

Git branch new                创建分支new

Git checkout new            切换分支到new

Git status                            当前状态

git remote rm origin          删除远程仓库

新建一个本地分支 和远程分支

git checkout -b dbg_lichen_star  新建本地并且换

git push origin dbg_lichen_star:dbg_lichen_star推送到远程分支

git push origin --delete dbg_lichen_star删除远程分支

git branch -D dbg_lichen_star  删除本地分支

//d第一次pull的时候

1.git fetch —all

2.git branch -new

3.git branch --set-upstream-to=company/sharingflow

4.建立追踪关系

添加远程仓库有两种方式  一种是ssh(git)一种是http(这个没次要输入密码不方便,在github上面有对应的两种格式的我们公司给的http://[email protected]:/guji_m.git属于两种都行,直接把前面的去掉就是git形似,实验证明如果用git的话必须使用相应的格式[email protected]:/guji_m.git),

git remote add origin [email protected]:daixu/WebApp.git

origin  可以自己命名

git remote show查看远程库

git remote -v  查看远程版本库信息

所有的需要git的项目必须放置在版本库的目录中,上面我们说了添加远程服务器,下面我们说怎么推送,首先切换到需要推送的分支中,如果该分支第一次推送采用这种格式:

git push -u CX second  :

-u 为第一次推送需要的参数    CX为远程服务器的别名  second为本地分支名,这样后在远程服务器中会建立一个CX分支,我验证了  采用当前本地分支second 后面推送的分支名 另外取名字,结果显示错误;

查看本地和远程服务器的所有分支名:

 git branch -a 

获取本地的所有分支

 git branch -v

删除本地分支:

git branch -d分支名

删除远地分支:

git push CX :second

查看所有远程仓库的别名和url

git remote -v

将远程仓库与本地仓库同步更新

Git中从远程的分支获取最新的版本到本地有这样2个命令:

1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge


git fetch origin master

git log -p master..origin/master

git merge origin/master

    以上命令的含义:

首先从远程的origin的master主分支下载最新的版本到origin/master分支上

然后比较本地的master分支和origin/master分支的差别

   最后进行合并

   上述过程其实可以用以下更清晰的方式来进行:


git fetch origin master:tmp

git diff tmp 

git merge tmp


    从远程获取最新的版本到本地的test分支上

   之后再进行比较合并

2. git pull:相当于是从远程获取最新版本并merge到本地


git pull origin master

git pull CX mytestbranch

必须当前的分支一致;

上述命令其实相当于git fetch和git merge

在实际使用中,git fetch更安全一些

   因为在merge前,我们可以查看更新情况,然后再决定是否合并

 "初始化git仓库,记得在项目目录下运行" git init

"添加文件到暂存区" git add

"把暂存区文件提交到本地版本库" git commit -m "提交log"

"查看工作区的状态" git status

"查看修改内容" git diff

"版本回退" git reset

"查看提交历史" git log

"查看命令历史" git reflog

"版本库文件覆盖工作区" git checkout

"删除文件" git rm

下面是对的,

"关联远程库" git remote add origin "你的远程库地址"

"第一次推送" git push -u origin master

"推送分支到远程库" git push -u origin master

"克隆远程库" git clone "远程库地址"

"查看分支" git branch

"创建分支" git branch分支名

"切换分支" git checkout分支名

"创建+切换分支" git checkout -b分支名

"合并指定分支到当前分支" git merge 分支名

"删除分支" git branch -d分支名

"查看分支合并图" git log --graph

"查看远程库信息" git remote -v

"获取远程库代码" git pull

"新建标签,标签默认打到最新一次的commit,也可以指定" git tag 标签名

"查看标签信息" git show标签名

"查看所有标签" git tag

"推送一个本地标签" git push origin标签名

"推送全部未推送过的本地标签" git push origin --tags

"删除一个本地标签" git tag -d标签名

"删除一个远程标签" git push origin :refs/tags/标签名

删除远程分支git push --delete company home_sharingflow


*************************************************************************

Mac中常见命令操作符

1.cd:切换目录;change directory

2.cd..:后退

3.pwd:显示当前路径print work directory

4.mkdir文件夹:创建文件夹make directory

5.vi文件:创立文件  vi编辑器

6.ls:罗列所有可见文件list

7.ls -a:罗列所有的文件包括隐藏list all

8.cat文件:查看文件concatenate

  Cat >fileName创建fileName类似vi fileName

  Cat file1 file2 >file合并

9.rm文件:删除文件remove

你可能感兴趣的:(版本控制之Hg&Git)