Git 入门 - 从建立仓库拉取推送到分支管理

建立git仓库

首先需要系统上有安装git,无论你是linux还是windows,安装好后cd到需要建立git仓库的目录下执行:


git init | 当前目录作为Git仓库,初始化

git init --bare | 初始化一个裸仓库,仅用于记录git提交的历史信息,可以利用hook实现仓库和代码分离

这两者的区别可以去百度一下或者参考这篇文章:git init 与git init --bare

仓库和代码分离参考:如何用git 实时更新线上项目代码

git 提交代码步骤

*  git add .   | 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
*  git add -u  | git add --update缩写 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)

1. git add -A  |  git add --all的缩写 提交所有变更,包含以上两种功能

2. git commit -m"备注"

3. git pull    | 拉取远端分支代码 (为了不影响远端代码建议先拉取再推送)

4. git push    | 当前分支只有一个远程分支,主机名都可以省略

git push 格式:

git push <远程主机名> <本地分支名>:<远程分支名>  | :前后必须没有空格的

git push origin master   |省略远程分支名,表示本地分支有存在"追踪关系"的远程分支(两个分支同名),如果该远程分支不存在,则会被新建;


* 删除远程仓库的分支 (省略本地分支推送会删除远程同名分支)
git push origin :master  |如果省略本地分支名,表示删除指定的远程分支,这等同于推送一个空的本地分支到远程分支。
* 等同于
git push origin --delete master

Git branch 分支

git 的一个重要功能分支,它可以为我们带来许多方便,每个分支就相当于一个版本的代码库,方便多人协作。
当涉及到多分支的时候建议使用git操作工具:sourcetree 或者 tortoiseGit 等,比较方便处理冲突等问题。
在git init 的时候默认分配了一个主分支master。那要如何创建分支?

git branch tester		 |创建一个分支名为test的分支, 格式:git branch <branchname>
git branch dev 			 |创建一个分支名为dev的分支
git push origin dev:dev  | 新建的本地分支push到远程服务器(远程与本地同名),这样就创建了远程分支dev

查看分支:

  git branch -r  	|查看远程分支名
  git branch  		|列出本地的分支
  git branch -a     |查看所有分支(本地和远程)

切换分支:

 git checkout dev | 从当前分支切换到dev分支,格式: git checkout <branchname>

删除分支

git branch -d tester | 删除 tester分支 

分支合并

git checkout master |切换到master分支
git merge dev | 把dev分支合并到当前分支

具体的操作实例可参考菜鸟的教程:Git 分支管理

git 回滚:

git revert -n 需要撤销的版本号  | 撤销某个版本的提交,并新建一个 “回退版本”
git commit -m"回退版本"
git push    		 		  | 将回退版本提交,这样就可以撤销指定版本的代码了

这里有篇git 回滚操作的文章写得很清晰:

Git恢复之前版本的两种方法reset、revert

Git 忽略提交 .gitignore

在使用Git的过程中,有一些不需要提交到代码仓库,这就要建立忽略规则,来忽略这些文件的提交。

规则作用例子:

/vendor  | 过滤整个文件夹
*.log    | 过滤所有.log 文件
/mtk/do.c | 过滤某个具体文件
!/mtk/one.txt | 追踪某个文件(不过滤)

git 对于 .gitignore配置文件是按行从上到下进行规则匹配的

如果你创建.gitignore文件之前就执行了push操作,那么即使你在.gitignore文件中写入该过滤规则,该规则也不会起作用,git仍然会对该文件进行版本管理。所以要在部署的时候就要先建立好 .gitignore 文件

配置语法
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录。

.gitignore规则不生效解决方法
方法一:(谨慎使用)
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
先把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

方法二:(推荐)
删除本地的代码,重新拉取一次所有代码,然后填写.gitignore (要在 get pull 之前)

git clone 克隆

    git clone git://github.com/**/**.git     | 克隆格式 git clone <url>
    
    git clone git://github.com/*/project.git myproject | 克隆代码重命名为myproject 

一些其他操作

git fetch origin master |将远程主机的最新内容拉到本地,不进行合并
git log | 列出历史提交记录
git log --oneline  | 查看历史记录的简版
git log --oneline --graph | 显示主分支和自分支git日志
git status |  查看当前git状态信息(查看是否有文件未提交)
git remote | 查看本地添加了哪些远程分支地址
git remote add origin https://xxxxxxxxxxxx.git | 添加远程地址
git branch -m <oldbranch> <newbranch>          | 重命名本地分支

git gc        | 清理不必要的文件并优化本地存储库

猜你喜欢

转载自blog.csdn.net/qq_39004843/article/details/106069368