Git使用教程

来源:互联网 发布:解除windows驱动器锁定 编辑:程序博客网 时间:2024/06/07 03:28

配置用户信息

当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:

$ git config --global user.name "John Doe"$ git config --global user.email johndoe@example.com

再次强调,如果使用了 –global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。

当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 –global 选项的命令来配置。

很多 GUI 工具都会在第一次运行时帮助你配置这些信息。

Git刪除文件

在git中我们可以通过git rm命令把一个文件删除,并把它从git的仓库管理系统中移除。但是注意最后要执行git commit才真正提交到git仓库

示例1git rm 1.txt删除1.txt文件,并把它从git的仓库管理系统中移除。示例2git rm -r myFolder删除文件夹myFolder,并把它从git的仓库管理系统中移除。

Git推送到服務器倉庫

git中,我们可以通过git push把本地仓库的更新推到服务器仓库。

$ git push ssh://git@dev.lemote.com/rt4ls.git master把本地仓库提交到远程仓库的master分支中$ git remote add origin ssh://git@dev.lemote.com/rt4ls.git$ git push origin master 

这两个操作是等价的,第二个操作的第一行的意思是添加一个标记,让origin指向ssh://git@dev.lemote.com/rt4ls.git,也就是说你操 作origin的时候,实际上就是在操作ssh://git@dev.lemote.com/rt4ls.git。origin在这里完全可以理解为后者 的别名。
需要说明的是,默认情况下这条语句等价于提交本地的master仓库到远程仓库,并作为远程的master分支。
如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做。

gitpushorigintest:master//testmaster git push origin test:test // 提交本地test分支作为远程的test分支
如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。
$ git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心

删除文件用 git rm
改文件名用 git mv
使用 git 遇到问题时,git status 一下,通常都会有提示告诉你该怎么做

If you deleted a file from the working tree, then commit the deletion:

git commit -a -m “A file was deleted”
And push your commit upstream:

git push
差别在-a 这个选项
add 只能加入原来没有被跟踪的文件,没有把删除这个行为也加入版本控制

命令为:
git ls-files -d |xargs -i git checkout {}

git ls-files -d :意思是显示出删除的文件
git checkout 命令为恢复某个文件,xargs将其作为参数传给git checkout.

然后就想,能不能从之前的版本中检出这个文件,然后重新添加到版本库中?再作为一个新的提交来挽救?

经实验室可以的,过程如下:

git checkout HEAD^ – a.txt

HEAD^ 代表上一次提交,

– a.txt 表示将上一次提交里的a.txt文件检出到工作区,这样a.txt就回来了。

接着:

git add a.txt && git commit -m “recover a.txt” && git push

其他人直接git pull

从 git 仓库中导出项目

git archive –format tar –output /path /to /file.tar master # 将 master 以 tar 格式打包到指定文件

使用Coding 克隆其他账号的代码 https://xxx@git.coding.net/uuu/iii.git

1 查看远程分支

$ git branch -a

  • br-2.1.2.2

master

remotes/origin/HEAD-> origin/master

remotes/origin/br-2.1.2.1

remotes/origin/br-2.1.2.2

remotes/origin/br-2.1.3

remotes/origin/master
2 查看本地分支
$ git branch

  • br-2.1.2.2

master
3 创建分支

shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei(br-2.1.2.2)

$ git branch test

$ git branch

  • br-2.1.2.2

master

test
4 切换分支到test
shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei(br-2.1.2.2)

$ git branch

  • br-2.1.2.2

master

test

shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei(br-2.1.2.2)

$ git checkout test

M jingwei-server/src/main/java/com/taobao/jingwei/server/service/cmd/GetCustomerTarCmd.java

M jingwei-server/src/main/java/com/taobao/jingwei/server/util/ServerUtil.java

Switched to branch ‘test’

shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei(test)

$ git branch

br-2.1.2.2

master

  • test
    5 删除本地分支 git branch -d xxxxx

$ git checkout br-2.1.2.2

M jingwei-server/src/main/java/com/taobao/jingwei/server/service/cmd/GetCustomerTarCmd.java

M jingwei-server/src/main/java/com/taobao/jingwei/server/util/ServerUtil.java

Switched to branch ‘br-2.1.2.2’

shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei(br-2.1.2.2)

$ git br

  • br-2.1.2.2

master

test

shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei(br-2.1.2.2)

$ git br -d test

Deleted branch test(was 17d28d9).

shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei(br-2.1.2.2)

$ git br

  • br-2.1.2.2

master
6 查看本地和远程分支 -a。前面带*号的代表你当前工作目录所处的分支

shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei(test)

$ git branch -a

br-2.1.2.2

master

  • test

remotes/origin/HEAD-> origin/master

remotes/origin/br-2.1.2.1

remotes/origin/br-2.1.2.2

remotes/origin/br-2.1.3

remotes/origin/master

0 0