Git 使用

一、git配置

Git学习 / Git分支管理策略 学习链接。
命令:git config --system 对应/etc/gitconfig文件,这是全局配置文件,修改这个文件将会影响系统上所有的用户和仓库;

      git config --global        对应/.gitconfig文件,修改它会对当前用户的所有仓库产生影响。

      git config                     默认修改的配置文件,只会对当前仓库产生影响。

第一次使用git时需要:

     git config --global user.name  "  "

     git config --global user.email xxx@meituan.com

     也可以制定编辑器,diff工具:

     git config --global core.editor vim

     git config --global merge.tool vimdiff

可以通过git config --list命令查看自己的设置。

git配置好后就可以从git服务器上获得仓库,或者向服务器提交代码。git支持四种与服务器端的通信协议:git(只读,只能获取仓库不可提交代码),http和https(用的很少),ssh。

当通过ssh协议与远端服务器进行通信时,可以通过指令 ssh-keygen -t rsa指令生成ssh密钥对,然后就会找到.ssh目录里有id_rsa和id_rsa.pub两个文件,id_rsa是私钥,id_rsa.pub是公钥可以告诉任何人。登陆stash->manage account->ssh keys->add key添加自己的公钥。

二、git 常用命令
1、初始化一个git仓库:git init

2、添加文件到git仓库:git add + git commit (可先add多个文件然后再一起commit)

                              git add把文件添加进去,实际上是把文件修改添加到暂存区;git commit提交更改,实际是把暂存区的所有内容提交                

                              到当前分支。

3、查看工作区状态:git status

4、如果git status显示有文件修改过,若查看修改内容:git diff

5、HEAD指向的版本是当前版本,要进行版本回退使用命令:git reset --hard commit_id

6、在版本回退前可以查看提交历史,以便确定要回退到哪个版本:git log

7、查看命令历史可以确定要回到未来的哪个版本:git relog可以查看命令历史

8、撤销修改:(1)当修改了工作区某个文件的内容,想要直接丢弃工作区的修改:git checkout – file(git checkout 其实是用版本库里的版本替换工作区的版本,无论工作区时修改还是删除,都可以一键还原)

                   (2)已将修改添加到了暂存区,想丢弃修改,分两步撤销修改,第一步git reset HEAD file就回到了(1)这种情况;然后                

                            按照(1)操作

                   (3)若已经提交了不合适的修改到版本库时(没有推送到远程库),想要撤销本次提交,参考版本回退。

9、删除文件:在git中删除也是一个修改操作,一般通常在文件管理器中把没用的文件删了或者用rm命令删了。这个时候git知道删除了文件,因此工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了。现在有两个选择:一个是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit,现在文件就从版本库中被删除了;另一种情况是删错了,因为版本库里还有了,所以可以用git checkout --filename把误删的文件恢复到最新版本

10、要关联一个远程库,使用命令:git remote add origin git@server-name:path/repo-name.git;

   关联后使用命令git push -u origin master第一次推送master分支的所有内容;此后,每次本地提交后,只要有必要,就可以是哟过git push origin master 推送最新修改。

11、克隆一个仓库:要想克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆

12、分支管理:查看分支:git branch; 创建分支: git branch 切换分支git checkout

                      创建+切换分支: git checkout -b <name>      

                      合并某分支到当前分支: git merge <name>  当git无法自动合并分支时,就必须先解决冲突再提交,合并完成。合并分支时加上--no-ff参数就可以用普通模式合并,合并后的历史有分支能看出曾经做过合并,而fast forward 合并就看不出来曾经做过合并。

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

Git工作流程

git常用命令清单

git代码行统计命令集https://segmentfault.com/a/1190000002434755

浏览项目历史,查询指定提交内容,图形化显示分枝和合并: http://fsjoy.blog.51cto.com/318484/245261

http://smilejay.com/2012/08/git-commit-sha-1/

在Git中,每个commit ID的信息(如cc127537978af35e2f502da7e8d22e340ed810e5)就是一个SHA-1 Hash值,它是对那个commit是Git仓库中内容和头信息(Header)的一个校验和(checksum)。Linux kernel开创者和Git的开发者——Linus说,Git使用了SHA-1并非是为了安全性,而是为了数据的完整性;它可以保证,在很多年后,你重新checkout某个commit时,一定是它多年前的当时的状态,完全一摸一样,完全值得信任。
在Git中,根据commit的SHA-1值(40个十六进制数字)进行了简单的划分目录,以前2位数字作为目录名,其下面是剩余38位数字组成的一个文件名,以我的一个backup.git代码仓库为例,演示如下。

一、基本命令(可参考GitQuickStart)
1.克隆代码库
git clone ssh://git@git.sankuai.com/web/www.git # 其中www是要克隆的版本库,其它如mining, stat, mtpay等。美团的代码库暂时不是全开放的,需要申请访问权限。

2.更新代码库到最新版
git pull

3.提交代码到本地仓库
git add template/deal/default.php # 添加文件到暂存区

git commit -m “update deal ui”

4.推送到远程仓库
git pull # 更新代码库到最新版本

git push # 开始推送

git push origin master # 对新建远程仓库的第一次推送,需要指定主分支名master

5.缓存取得操作
git add template/deal/default.php # 提交文件到暂存区

git reset HEAD template/deal/default.php # 删除暂存区中的文件

二、关联远程库相关命令:
1.在本地目录下关联远程repository :
git remote add origin git@github.com:git_username/repository_name.git(远程仓库地址)

2.取消本地目录下关联的远程库:
git remote remove origin

三、分支相关命令:
1.查看远程本地分支:
git branch

2.查看远程分支:
git branch -r

3.查看所有分支(本地和远程):
git branch -a

4.创建分支test:
git branch test

5.切换本地分支到test
git checkout test

6.把本地分支test推到远程分支test(同时创建了远程分支test)
git add --all
git push origin test

7.删除本地分支test
git branch -d test

8.拉取远程分支并创建本地分支
git checkout -b 本地分支名x origin/远程分支名x

9.删除远程分支
git branch -r -d origin/branch-name
git push origin :branch-name

10.发现refusing to merge unrelated histories,无法pull;
因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码,在git pull,这句代码是在git 2.9.2版本发生的,最新的版本需要添加–allow-unrelated-histories
git pull origin master --allow-unrelated-histories

11.强制提交到远程master分支
git push -u origin master -f

三、对新建立的仓库上传最新的代码或分支
git clone git@github.com:git_username/repository_name.git(远程仓库地址)

cd existing-project

git init

git add --all (上传最新的代码,记得一定要有.gitignore)

git commit -m “Initial repos”

git remote add origin git@github.com:git_username/repository_name.git(远程仓库地址)

git push origin master

四、在使用Git的时候我们有时候需要忽略一些文件或者文件夹。我们一般在仓库的根目录创建.gitignore文件
在提交之前,修改.gitignore文件,添加需要忽略的文件。然后再做add commit push 等

但是有时在使用过称中,需要对.gitignore文件进行再次的修改。这次我们需要清除一下缓存cache,才能是.gitignore 生效。
具体做法:
[plain] view plain copy
git rm -r --cached . #清除缓存
git add . #重新trace file
git commit -m “update .gitignore” #提交和注释
git push origin master #可选,如果需要同步到remote上的话

这样就能够使修改后的.gitignore生效。

五、参考学习文档如下:教你学会Git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值