Git 使用指南

https://www.cnblogs.com/mjbin/p/5820942.html

Git简介:

Git是分布式的,这意味着它并不依赖于中心服务器来保存你文件的旧版本。任何一台机器都可以有一个本地版本的控制系统,其实就是一个硬盘上的文件,我们称之为仓库(repository)。如果是多人协作的话,你还需要一个线上仓库,用来同步代码等信息。

1.安装Git

2.配置Git(记录操作谁干的,到时候好甩锅)

 $ git config --global user.name "My Name" 
 $ git config --global user.email myEmail@example.com


本地仓库(repository)操作:

1.创建一个新仓库 – git init

$ cd Desktop/git_exercise/ 
$ git init

 

2.检查状态 – git status

Git status是另一个非常重要的命令,它反馈给我们仓库当前状态的信息:是否为最新代码,有什么更新等等。

 

3.暂存 – git add

Git有个概念叫“暂存区“,你可以把它看成一块空白的画布,包裹着所有你可能会提交的变动。可以通过 git add 命令添加内容,最后使用 git commit 提交(创建一个快照)。

添加一个文件

 git add filename

如果需要提交目录下的所有内容,可以这样做:

git add -A

同样可以做修改和删除

 

4.提交 – git commit

一次提交代表着我们的仓库到了一个新的状态,就像是一个快照,允许我们像使用时光机一样回到之前的某个时间点。

创建提交,需要我们至少在到暂存区有一次修改(刚才我们做了git add,可以是修改,删除),然后输入命令:

git commit -m "提交描述."

 

5.撤销修改 – git checkout(没有add,commit过的文件适用)

git checkout . (记得有个点)功能是本地所有修改的。没有的提交的,都返回到原来的状态。

git checkout -- filepathname 例如:放弃修改HomeScene.unity

6.撤销提交

git reset --soft commit的log

git reset --mixed commit的log

git reset --hard commit的log

软、混合、硬的区别就是,--soft只撤销提交不撤销 add 上缓存区的内容,---mixed会把 addcommit一起撤销。以上两个类型都不会改变本地的代码。---hard会把本地的代码直接回滚到指定的 commit log 的时候,如果用了--hard会发现自己在该 commit log 之后写的代码都不见了。

https://www.jianshu.com/p/672c2d7f6227

7.查看某次提交的文件

1. git log 查看提交历史记录
2. git log --oneline 或者 git log --pretty=oneline 以精简模式显示
3. git log --graph 以图形模式显示
4. git log --stat 显示文件更改列表
5. git log --author= 'name' 显示某个作者的日志
6. git log -p filepath 查看某个文件的详细修改
7. git log -L start,end:filepath 查看某个文件某几行范围内的修改记录
8. git log --stat commitId 或者 git show --stat commitId 查看某一次提交的文件修改列表

https://www.cnblogs.com/lsgxeva/p/9485874.html

 

8.删除分支 – git branch -d branchName

9.一个分支覆盖另一个分支(以下为分支branchname_B覆盖分支branchname_A的操作

git checkout branchname_A// 切换到分支  branchname_A
git reset --hard branchname_B// 将分支branchname_A 用branchname_B覆盖

//将branchname_B 推送到 远程仓库origin  这一步,看需要。。。
git push origin branchname_B --force // 再推送到远程仓库

 

10.合并分支

git merge + 要合并的分支名称。合并之前先commit分支的修改。


远程仓库:

1.本地仓库链接远程仓库 – git remote add

把本地仓库链接到Github上,在命令行执行以下内容:

$ git remote add origin https://github.com/igeekbar/awesome-project.git

一个项目可以同时拥有好几个远程仓库,为了区分通常会起不同的名字。通常主要的远程仓库被称为origin

https://github.com/igeekbar/awesome-project.git 远程仓库地址

 

2.上传到服务器 – git push

把本地的提交传送到服务器的动作叫做push。每次我们要提交修改到服务器上时,都会使用到git push

$ git push origin master 

origin 远程仓库名字     master 本地仓库默认分支名字

 

3.克隆仓库 – git clone

其他人下载远程仓库项目到本地,他们可以用git clone命令下载到本地。

$ git clone https://github.com/igeekbar/awesome-project.git

https://github.com/igeekbar/awesome-project.git远程仓库项目地址

本地会自动创建一个本地仓库,并创建一个默认分支,名字叫master,并自动将github上的版本设为远程仓库。

 

4.从服务器上获得修改 – git pull

更新远程仓库的代码到本地

git pull origin master 

origin 远程仓库名字    master 本地仓库默认分支名字


分支

当你在做一个新功能的时候,最好是在一个独立的区域上开发(原始项目的拷贝),通常称之为分支。分支之间相互独立,并且拥有自己的历史记录,直到你决定把他们合并到一起。这样做的原因是:

  • 已经可以运行的稳定版本的代码不会被破坏
  • 不同的功能可以由不同开发者同时开发
  • 开发者可以专注于自己的分支,不用担心被其他人破坏
  • 在不确定哪个版本更好之前,同一个特性可以在不同的分支上创建多个版本,便于比较

1.创建新分支 – git branch

每一个本地仓库的默认分支都叫master, 创建新分支可以用git branch <name>命令:

$ git branch bugs

创建一个叫bugs的分支

 

2.切换分支 – git checkout

查看当前是哪个分支版本

* 号表示当前活跃分支为master,现在我们想在新分支上开发新的特性,使用git checkout切换分支。有一个参数表示要切换到的分支。

切换到分支chan_test。

3.合并分支 – git merge

我们在“bugs”分支想添加一个lalala.txt。和之前一样我们来创建文件、添加到暂存区、提交。

git add lalala.txt //添加文件lalala.txt到本地仓库分支bugs的暂存区

git commit -m "" //将bugs暂存区的文件lalala.txt提交到本地仓库分支bugs

切换回来本地仓库的默认分支master,lalala.txt文件没了

git checkout master

将本地仓库分支bugs的修改内容合并到默认分支master

git merge bugs

本地仓库默认分支master有lalala.txt文件了。


1.比对两个不同提交之间的差别

 

每次提交都有一个标识id,查看所有历史提交和他们的id

1.1 git log

commit ba25c0ff30e1b2f0259157b42b9f8f5d174d80d7 //提交id
Author: igeekbar //提交者
Date:   Fri July 29 17:15:28 2016 +0300 //提交日期
    New feature complete //提交说明

commit bc11c0ff30e1b2f0259157b42b9f8f5d174d80d7 //提交id
Author: igeekbar //提交者
Date:   Fri July 29 17:15:28 2016 +0300 //提交日期
    New feature complete //提交说明

id很长,但是当使用它的时候你并不需要复制整个字符串,前几个字符就够了。

git log --oneline 单行显示提交记录

git log --graph 经过简单排版的提交记录

git log -- branchname (branchname远程分支名字) 查看远程分支提交记录

1.2 显示某次提交的内容:

git show ba25

1.3 git diff [commitid1]..[commitid2]:

git show ba25..bc11

 

git diff 文件对比
1. git diff filepath 工作区与暂存区比较
2. git diff HEAD filepath 工作区与HEAD ( 当前工作分支) 比较
3. git diff --staged 或 --cached filepath 暂存区与HEAD比较
4. git diff branchName filepath 当前分支的文件与branchName 分支的文件进行比较
5. git diff commitId filepath 与某一次提交进行比较

https://www.cnblogs.com/lsgxeva/p/9485874.html

2.回滚某个文件到之前的版本

Git允许我们将某个特定的文件回滚到特定的提交,使用的也是 git checkout命令。

git checkout 09bd8cc1 lalala.txt   

 //09bd8cc1 =commit id      lalala.txt文件名

 

3.回滚提交

如果你发现最新的一次提交忘记加入某个文件,或是信息输入的不正确,你可以通过 git commit --amend来改正,它会把最新的提交打回暂存区,并尝试重新提交。

如果是更复杂的情况,比如不是最新的提交除了问题,你可以使用git revert

最新的一次提交别名也叫HEAD

git revert HEAD  or  其他版本提交 git revert ba25

 

4.解决合并冲突

手动解决完,提交到本地仓库分支,提交到远端仓库。

 

5.配置 .gitignore

大部分项目中,会有些文件、文件夹是我们不想提交的。为了防止使用git add -A时不小心提交,我们可以利用.gitignore文件:

  • 在项目根目录创建.gitignore文件
  • 在文件中列出不需要提交的文件名、文件夹名,每个一行
  • .gitignore文件需要像普通文件一样add、commit和push

*.log //  后缀名是.log的
build/  build文件下的
node_modules/ 
.idea/ 
my_notes.txt  //my_notes.txt文件

 

6.git 放弃本地修改,远程分支强制覆盖本地

git fetch --all    //只是下载代码到本地,不进行合并操作

git reset --hard origin/分支名如master    //把HEAD指向最新下载的版本

git pull //再从服务器拉取下最新的

 

7.git stash   & git stash pop

git stash 代码改一半,不想提交到本地仓库分支,又不想放弃修改。暂时提交到栈中缓存。

git stash pop从栈中取出再使用

 

8.忽略文件

.gitignore文件中配置忽略文件夹和文件。这只能忽略没有被纳入过git版本管理的文件和目录,如果已经纳入git版本管理中,需要使用 git rm --cached 命令删除文件和目录的追踪状态(不删除文件),然后在.gitignore中添加不追踪的目录和文件。

git rm --cached "文件路径的文件名字"

9.查看已删除提交分支

git reflog

 

10.打包导出某次提交

git diff-tree -r—no-commit-id—name-only CommitId | xargs tar -rf 自定义压缩包名字.tar

11.查看某个文件提交记录(方便甩锅。。。)

git blame <filename>   例如:

git blame Assets/_Scripts/HomeScene/Views/DialogBase.cs

查看工程文件夹下的DialogBase.cs文件(从.git文件所在文件夹开始算路劲 Assets文件夹和.git文件同级)

12.查看某个文件的具体改动记录

git blame <filename>   例如:

git log --pretty=oneline Assets/_Scripts/HomeScene/Views/RoomInfoDialog.cs

查看工程文件夹下的DialogBase.cs文件(从.git文件所在文件夹开始算路劲 Assets文件夹和.git文件同级)


https://blog.csdn.net/xiaoxiaojie12321/article/details/80932888

总结一下:关于第一次上传github项目,步骤如下:


     1、在Github上设置好SSH密钥

     2、在本地创建一个版本库(即文件夹),通过git init把它变成Git仓库;

     3、把项目复制到这个文件夹里面,再通过git add .把项目添加到仓库;

     4、再通过git commit -m "注释内容"把项目提交到仓库;

     5、通过git remote add origin +地址,将本地仓库和远程仓库进行关联;

     6、最后通过git push -u origin master把本地仓库的项目推送到远程仓库(也就是Github)上;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值