git的38个基本面

1、下载git?
git-scm.com

2、获取帮助
git help
git help config

3、什么是Git?
版本控制系统,Version Control System, VCS。它允许我们提交变化到源代码管理库,并且跟踪变化。允许develope在同一套代码库上协同工作。是现代的、分布式版本控制系统。

4、一些关键词?
Branch
Merge
Commit:发生在本地
Push
Pull

5、git的历史
创建于2005年,一开始Linux kernel使用BitKeeper作为版本控制系统,后来Linus kernel和BitKeeper拆分,BitKeeper的拥有公司无法再提供免费服务,Linux需要一个新的版本控制系统替代BitKeeper,Linux的程序员们开始重造轮子,并在以后完善了社区,并诞生了GitHub.

6、CVS和DVC?
CVS是Centralized Version Control,程序员们向同一台中央服务器提交;DVC是Distributed Version Control,每个人都有自己的代码控制库,每次提交是提交到本地的,每次提交了一个新版本的代码,然后是push到远程。多人协作的一个场景:A和B协同工作,A把代码commit到本地,B直接从A的本地代码库pull,当A完成阶段工作,push到远程代码服务器,B现在可以从远程代码库pull代码了。

7、一些命令?
init,创建本地代码库
status,本地代码库的状态,显示没有commit的变化
add,把文件放到本地代码库
commit,把变化提交到本地代码库
log,显示提交的所有变化
push,push所有的变化到远程代码服务器,还可以提交到多个地方
pull,从远程代码服务器或其它代码库pull变化
merge,合并变化

8、git配置

git config --global user.name "darren"
git config --global user.email "[email protected]"
git config --global --list

信息被存放在了管理员文件夹中的.gitconfig文件中,大致是:
[user]
    name = darren
    email = [email protected]

git config --global core.editor note 使用哪个编辑器
git config --global help.autocorrect 1 当出现错误命令会有提示
git config --global color.ui auto 设置字体颜色等
git config --glboal core.autocrlf false windows下推荐使用

以上的设置是System级别的。

还可以设置用户级别的,用户级别可以覆盖System级别。

git config user.name "jack"

用户级别移除设置:git config --unset core.autocrlf

9、创建本地代码库, 追加文件, 提交变化

→ 来到某个文件夹,打开命令行窗口
→ 创建本地代码库
git init
→ 在文件夹内创建一个README.txt文件
→ 查看本地代码库的状态
git status
红色字体表示没有被tracked的文件
→ 把文件添加到本地代码库,使文件可以被track
git add README.txt
git add -u 用来add刚被更新的文件,而不是刚添加的文件
git add -A add所有文件到staging area被track等待被commit
此时,再运行git status,README.txt变成绿色,说明已经被track
→ commit变化
git commit
→ 查看历史
git log

10、历史版本和版本差异

→ 查看历史版本
git log
→ 查看版本差异
git diff dd6819..a15ec6
→ 查看最近的历史版本
git diff HEAD
→ 查看最近的历史版本之前的版本
git diff HEAD~1
→ 查看最近历史版本和之前一个版本的差异
git diff HEAD~1..HEAD
也可以写成
git diff HEAD~1..

11、一次修改多次提交

→ 假设修改了2个文件
README.txt
file.txt
→ 查看状态
git status
此时可以看到修改的文件呈红色状态。通常一次commit就好,但这里就分两次commit
→ 第一次add
git add file.txt
→ 第一次commit
git commit -m "blablabla"
→ 第二次add
git add README.txt
→ 第二次commit
git commit -m "second blablabla"

12、删除文件
→ 删除file.txt文件
→ 查看状态
git status
deleted file.txt 并且是红色字体
→ 把删除也放到staging area
git add -u
→ 查看状态
git status
deleted: file.txt 并且是绿色字体
→ commit
git commit -m "blablabla"

也就是说,对于删除的文件,也需要使用git add -u,把删除的文件放在staging area。

13、重命名文件
→ 把file.txt重命名为newfilename.txt
→ 查看状态
git status
deleted: file.txt 红色字体(被重命名的文件在git看来是deleted状态)
nefilename.txt 红色字体(新的文件在git看来是一个untracked状态)
→ 把deleted状态的文件和新文件放到staging area上去
git add -A
→ 查看状态
git status
renamed: file.txt → newfilename.txt 绿色字体(git 记录下了重命名过程)
→ commit一下
git commit -m "blablabla"

14、撤销改变
→ 修改某个文件,比如README.txt
→ 查看状态
git status
modified: README.txt 红色字体
→ 撤销修改
git checkout README.txt

15、撤销多个改变
→ 修改某个文件,比如README.txt
→ 删除某个文件,比如newfilename.txt
→ 查看状态
git status
modified: README.txt 红色字体
deletedL newfilename.txt 红色字体
→ 撤销这2个改变
git reset -hard
→ 查看状态
git status
回到最近的一次HEAD

16、删除文件
→ 创建文件
temp1.txt
temp2.txt
→ 查看状态
git status
temp1.txt 红色字体
temp2.txt 红色字体
→ 删除文件
git clean -f

17、忽略文件
→ 假设创建logs文件夹和线面的log.txt
→ 查看状态
git status
logs/ 红色字体
→ 创建.gitignore文件,内容如下:
/logs/*.txt
/logs/*.log
→ 查看状态
git status
.gitignore 红色字体
→ 把.gitignore文件放到staging area
git add .gitignore
→ 提交
git commit -m "Added .gitignore"

18、拷贝远程网站到本地
→ 拷贝
git clone https://github.com/jquery/jquery.git
→ 查看所有的提交
git log
git log --oneline

19、查看数据
→ 查看总共多少次提交
git log --oneline | wc -1
→ 查看带图标
git log --oneline --graph
→ 查看哪些人提交了哪些
git shortlog
→ 查看哪些人以及邮件
git shortlog -sne
→ 查看更多
比如在github网站上,有一个Graphs菜单,里面有更详尽的信息。

20、查看提交
→ 展示最后一次提交
git show HEAD
→ 展示倒数第二次提交
git show HEAD~1
→ 展示所有提交
git log --oneline
→ 展示最后10次变化
git show HEAD~10
→ 展示某一次提交
git show 5642626
→ 查看远程
git remote
origin 远程名称为origin的代码库
→ 查看远程更多
git remote -v
origin https://github.com/jquery/jquery.git(fetch)
orgin https://github.com/jquery/jquery.git(push)

21、Git Protocol

● git支持http、https、git、ssh和file协议
● http的默认端口是80,https的默认端口是443,可以设置
● 对于比如说github上的网站,通常读取是自由的,但写通常需要密码
● git protocol
git 9418 git://github.com/jquery/jquery.git
● ssh protocol
ssh 22 [email protected]:jquery/jquery.git
● file protocol
file n/a /Users/James/code/jquery

22、查看分支和标签
→ 查看本地分支
git branch
→ 查看远程分支
git branc -r
→ 查看tag
git tag
可以看到所有版本

23、本地代码库复制到远程,在远程创建代码库
→ 在本地代码库基础上创建远程代码库
git remote add origin https://github.com/Darrenji/example.git

24、从远程fetch
→ fetch
git fetch
把远程所有变化拉到本地
→ fetch某个分支
git fetch origin

25、远程变化同步合并到本地
→ 远程有一个变化,有可能是另外一个程序员提交
→ 同步合并到本地
git merge origin/master

26、从远程拉
→ 查看远程分支
git branch -r
origin/master 红色字体
→ 现在准备拉pull,pull等同于:git fetch; git merge origin/master
→ 建立远程和本地的映射
git branch --set-upstream master origin/master 第一个master是指本地
→ 开始拉
git pull

27、推到远程
→ 本地提交一些变化
git commit -am "blabla"
→ 推
git push
输入用户名
输入密码

当然还可以在推之前删除远程
→ 删除远程
git remote rm origin
→ 列出远程
git remote -v
→ 重新创建一个SSH协议的远程
git remote add origin [email protected]:Darren/Example.git
→ 推
git push

注意:SSH协议这里使用SSH key进行认证用户

28、创建标签
→ 创建标签
git tag v1.0
git tag -a v1.0_with_message
git tag -s v1.0_signed
→ 列出所有标签
git tag
→ 列出某个标签
git tag -v v1.0_signed

29、把标签推到远程
→ 默认情况下git不推标签
git push --tags

30、可视化分支
→查看现有分支下的提交
git log --graph --oneline
→ 查看所有分支下的提交
git log --graph --oneline --all --decorate
--all所有分支
--docorate比如HEAD,tag等

还可以把以上的选项放到全局去并使用别名调用:
→ 全局设置
git config --global alias.lga "log --graph --oneline --all --decorate"
→ 使用新的命令
git lga

31、创建本地分支
→ 创建本地一个分支
git branch feature1
→ 跳转到feature1这个分支
git checkout feature1
→ 查看所有分支下的提交
git log --graph --oneline --all --decorate

32、分支和标签的区别
branch会跟着commits,tag始终跟着一个commit。

→ 创建一个分支并让它跟着一个commit
git branch fix1 974b56a
→ 切换到fix1
git checkout fix1
→ 修改fix1下的某个文件
→ 提交
git commit -am "blabla"

33、重命名和删除分支
→ 重命名分支
git branch -m fix1 bug1234
→ 删除分支
git branch -d bug1234
→ 想git报告删除分支的事
git branch -D bug1234
→ 创建并切换到新创建的分支
git checkout -b feature2

34、把删除的分支找回来
→ 输入如下
git reflog

5a78c8b [email protected]{3}: commit: Fixed bug#1234
→ 找回分支
git branch bug1234 5a78c8b
→ 切换到找回的分支
git checkout bug1234
→ 展示HEAD
git show HEAD

注意:commit保存期只有30天

35、不提交变化隐藏变化
→ 修改某个文件,比如README.txt
→ 查看状态
git status
modified: README.txt 红色字体
→ 隐藏变化
git stash
→ 查看隐藏的所有变化
git stash list

36、创建远程分支
→ 推到远程的某个分支上
git push origin master
→ 把本地branch推到远程
git push origin v1.0_fixes
远程会多了一个分支
→ 查看远程分支
git branch -r

37、删除远程分支
→ 先推到远程分支
git push origin v1.0_fixes
git push origin v1.0_fixes:v1.0_fixes_remote_branch_name(远程和本地分支名称不一样)
→ 删除远程分支
git push origin:v1.0_fixes_remote_branch_name

38、git网站设置
通常在git网站,比如github, coding.net都会有一些基本设置的地方。

时间: 2024-10-31 11:18:44

git的38个基本面的相关文章

记录一次使用terminal进行git管理与提交到Github的过程

1.环境的构建: 使用Mac系统自带的Git进行版本管理存在,Git是系统的Xcode集成的 查看版本的命令: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000; background-color: rgba(255, 255, 255, 0.59) } span.s1 { } 1 $ git --version 2 git version 2.14.3 (Apple Git-98) 查看git的

Git/Github GitBash 2.2 .git.objects

$ mkdir c $ cd c $ git init //首次提交. $ vim 1.txt $ ls -alh .git/objects/ total 4.0K drwxr-xr-x 1 desktop 197121 0 八月 8 17:00 ./ drwxr-xr-x 1 desktop 197121 0 八月 8 17:00 ../ drwxr-xr-x 1 desktop 197121 0 八月 8 17:00 info/ drwxr-xr-x 1 desktop 197121 0 八

Git分布式版本控制器安装注意点及其常用命令

将git按照默认选项下载安装后,打开git bach版面进行git命令行操作(记住在安装的过程中文件夹中不能存在中文):注:Windows下,路径名不要包含中文,因为Git对中文支持不给力,可能会存在报错.Git下载地址 1 git安装成功后,查看git版本: 2 git version 3 4 显示当前的Git配置: 5 git config --list 6 7 编辑Git配置文件: 8 git config -e [--global] 9 10 打开对应于文件地址(和window cmd一

Centos7下部署本地的gitlab(CE版本)

1)操作步骤(基本参照官方文档https://about.gitlab.com/downloads/#centos7) [[email protected] ~]# sudo yum install curl policycoreutils openssh-server openssh-client s -y [[email protected] ~]# sudo systemctl enable sshd [[email protected] ~]# sudo systemctl start 

第七章 哈希表

上章回顾 常见的排序算法有哪些 其中那种算法的效率最高 对大量的数据进行排序的化最好使用那种排 序算法 [email protected]:Kevin-Dfg/[email protected]:Kevin-Dfg/Data-Structures-and-Algorithm-Analysis-in-C.git 第七章 第七章 哈希表 哈希表 [email protected]:Kevin-Dfg/[email protected]:Kevin-Dfg/Data-Structures-and-Al

38. docker cloud 简介及 关联 git hub

1.概念 提供 容器的管理, 编排, 部署 的托管服务 2.功能 image 管理 创建 stack 创建服务 service 添加 节点 作为 docker host 自动关联云服务商 AWS  Azure 3. 运行模式 standard 模式: 一个 node 就是一个 docker host swarm 模式: 多个 node 组成 swarm cluster 4. 自动 build docker image 关联 github 账户 创建 organization 创建 docker

git log进阶

格式化log输出 oneline --oneline标记将每个commit压缩成一行. 默认情况下显示一个commit ID和commit描述的第一行. 输出如下: 0e25143 Merge branch 'feature' ad8621a Fix a bug in the feature 16b36c6 Add a new feature 23ad9ad Add the initial code base decorate 许多时候知道commit是和哪一个分支或tag关联的是非常有用的.

iPad上用Codea-SCM调用git web services做版本管理

iPad上用Codea-SCM调用git web services做版本管理 目录 说明 安装 Codea-SCM 远端代码仓库设置 本地 Codea-SCM 设置 说明 在 iPad 上使用 Codea 做项目开发,虽然调试.修改代码很方便,但是有一点比较麻烦,就是 Codea 无法做版本管理,所以有时修改错了,想回退到之前的稳定版本,就没办法了,只能手动保存每个版本的代码. 现在有一种方法可以把 Codea 的项目自动提交到 git 服务器上,可以非常方便地管理你的不同版本. 安装 Code

windows下git命令的使用

一.写在前面 关于git,出于自己的爱好,前段时间玩了一下,也自己上网查了一下资料,现简单记录一下,以备查看. 当然,本文并不是介绍配置git服务器的文章,而是以github服务器作为git的远程仓库服务器. 二.安装 windows下使用git,需要安装msysGit,下载地址是https://code.google.com/p/msysgit/downloads/list; 安装完成后,在安装目录下,有个msys.bat文件,这个就是msysGit提供的命令行客户端: 当然就像svn一样,也