git命令使用说明(整理中........)
- 格式:docx
- 大小:102.88 KB
- 文档页数:4
Gitpull(拉取)及push(上传)相关命令介绍前⾔:博主最近在学习git命令,因为git是⼀个⾮常好⽤的分布式版本管理⼯具,功能⽐svn强⼤,与SVN不同点是Git去中⼼化,每⼀个分⽀都是⼀个中⼼,并且⽀持本地仓库存储,像如今很多⼤公司都⽤git做版本控制。
话不多说,具体命令整理如下:git拉取远程代码git clone https://xxx.git git拉取远程指定分⽀下代码(-b 分⽀名称)git clone -b v2.8.1 https://xxx.git初始化⼀个本地仓库,在同级⽬录下会出现⼀个隐藏的.git⽂件git init 查看git的配置信息git config -l git配置本地仓库的userName(必须)git config 'Lee' git配置本地仓库的邮箱(必须)gitconfiguser.email'************' 三级⽂件配置路径:.git/config/.gitconfig #当前⽤户⽬录/etc/gitconfig #git安装⽬录本地提交到git索引(缓存)中git add . #把新增的、修改的都加到缓存git add -A #把新增、和修改的、和删除的都加到缓存 本地从缓存中加到⽂件库(repository)中git commit -m '版本描述' #提交到⽂件库本地⼀件提交到⽂件库中git commit -am '版本描述' #⼀步完成提交 查看当前git状态信息(查看是否有⽂件未提交)git statusgit中的三类⽂件被追踪的(tracked):已经加⼊⽂档库不被追踪的(untracked):没有加⼊⽂档库忽略的(ignored):忽略那些不需要管理的⽂件夹或⽂件 git新建忽略⽂件⽬录下建⽴⼀个.gitignore⽂件(可以有多个,影响范围当前⽂件及⼦⽂件)touch .gitignore .gitignore⽂件忽略内容demo# Maven #target/# IDEA #.idea/*.iml# Eclipse #.settings/.classpath.project注意:新建的⼀个忽略⽂件,为什么没有⽣效答:可能是因为你的缓存区已经有忽略的⽂件了,所以需要先清空缓存区⾥的⽂件,重新add和commit操作删除缓存区所有⽂件命令git rm -r --cached . #主要这个点⼀定要写 重新add到缓存区git add . 每⼀次commit都是⼀个提交点,唯⼀标识SHA1的ID,ID可使⽤前4⾄7个数字表⽰查看git的⽇志信息git log给提交点打标签 git tag -a v0.2 4a80f64(提交点SHA1的ID的前7位)git tag -a tagV1 d819565b #提交点SHA1的ID的前7位回车之后会有输⼊tag内容的界⾯,然后像linux⼀样点击 i 编辑输⼊信息后 esc 然后 :wq 保存退出简化git⽇志输出格式git log --oneline显⽰主分⽀和⾃分⽀git⽇志(前⾯会多个星号)git log --oneline --graph查看本地添加了哪些远程分⽀地址git remote查看本地添加了哪些远程分⽀地址(详细)git remote -v删除本地指定的远程地址git remote remove origin 添加远程地址git remote add origin https://xxxxxxxxxxxx.git 分⽀:分⽀意味着你可以从开发主线(master)上分离开,在不影响主线的同事继续⼯git branch #列出当前开发所有分⽀(默认会有master)git branch king #创建⼀个king的分⽀(最新提交点)git branch king 提交点 # 创建⼀个king的分⽀(指定提交点)git branch -d -r <branchname> # 删除远程分⽀,删除后还需推送到服务器git push origin:<branchname> # 删除后推送⾄服务器git branch -d king #删除king分⽀git checkout king #切换⾄king分⽀git checkout mastergit merge king #合并分⽀king和主⼲master,合并后的提交点属于主⼲master本地分⽀重命名git branch -m <oldbranch> <newbranch> #重命名本地分⽀ 查看本地和远程的所有分⽀git branch -a # 查看本地和远程的所有分⽀ 查看远程所有分⽀git branch -r # 查看远程所有分⽀重命名远程分⽀:1、删除远程待修改分⽀2、push本地新分⽀到远程服务器head节点代表最新的commit 显⽰head 信息git show HEAD回退:git reset 选项提交点(选项:--hard表⽰全恢复提交点:可⽤ID或标签)git reset --hard v0.1查询所有提交点git reflog #回退后需要反悔的话,需要通过此命令查找到所有操作的提交点合并分⽀的起始点(不推荐)git checkout mastergit rebase reking #合并分⽀reking和主⼲master,合并后的提交点属于主⼲masterclone 克隆远程⽂件git clone "远程地址" "本地⽂件名称" push 推送本地修改分⽀⾄远程git仓库git push -u origin feature-wxDemo fetch与pullfetch是将远程主机的最新内容拉到本地,不进⾏合并git fetch origin master pull 则是将远程主机的master分⽀最新内容拉下来后与当前本地分⽀直接合并 fetch+mergegit pull origin master如果远程分⽀是与当前分⽀合并,则冒号后⾯的部分可以省略。
Git 版本控制Git中大部分操作都是针对本地文件和本地数据库,只有在我们平时执行类似克隆(clone)、pull、push等命令时才与远程服务器交互。
这样对于开发维护代码库就很安全,因为一旦远程服务器代码丢失仍然可以将本地代码上传到服务器;也会给开发者带来诸多方便,因为将远程代码取到本地后可以随意的修改,一旦修改混乱之后仍然可以恢复到以前版本,即使本地代码被误删除仍然可以重新从服务器取回代码。
下面将针对一些常用使用命令和技巧进行介绍:一、git提交规范在commit是,如果有对应PR,请在第一行写上PR号,然后再描述信息(另起行),并把涉及到改动的文件名附上.具体操作如下(不用git commit -m 填写说明):1、如果提交全部文件(请先git status确认是否要提交所有改动)1.1 git commit -a1.2 在打开的编辑器中(默认为VIM) 第一行填写PR号(顶格写,多个PR用逗号隔开,要写全),然后再写说明。
1.3 把涉及修改文件路径前的# 去掉,就会提交,不用手工输入文件路径。
1.4 然后ESC 输入:wq退出VIM.2、如果提交部分文件2.1 分别git add 要提交的所有文件。
2.2 git commit。
2.3 以后步骤同上。
二、第一次初始配置1、第一次取出代码到本地需要克隆代码(从服务器取代码到本地),一般如果新建一个本地代码库都需要重新克隆一次代码。
命令:git clone git://服务器代码库地址2、第一次使用git环境一般应该配置你的用户信息,这样会方便别人与自己查看git提交代码记录。
命令:$ git config --global zhangsan$ git config --global user.email *****************.cn这里使用的—global,以后的所有项目都默认使用这个配置,这时写入的是用户主目录的git配置文件(跟曲以鹏在邮件里边说的那个“.gitconfig”文件应该是一回事),如果想改变其中一个项目的配置可以去掉—global重新配置如:命令:$ git config lisi查看这些配置信息,如:命令:$ git config --list3、修改编辑器,一般我们在git commit(提交)后,需要添加PR号或者添加注释信息,对于编辑可以选用自己习惯的编辑器如:vi命令:$ git config --global core.editor vi三、提交代码(这部分只是针对本地代码库,所有操作都没有涉及服务器)1、提交代码过程大家都非常熟悉,平时常用几种命令,如:$ git add file –> $ git commit 或者全部提交:$ git commit –a当中可能经常使用如$ git status 查询状态、$ git diff 比较不同。
git config 是用于进行一些配置设置的命令,有三种不同的方式来指定这些配置适用的范围:
1. git config 针对一个 git 仓库。
2. git config --global 针对一个用户。
3. sudo git config --system 针对一个系统,因为是针对整个系统的,所以必须使用 sudo。
此外,git config 还有以下用法:
1. 查看所有配置:git config -l
2. 查看特定配置:git config --get <key>
3. 设置特定配置:git config --set <key> <value>
4. 删除特定配置:git config --unset <key>
在使用 git config 时,如果当前目录不是一个有效的 git 仓库,在执行一些命令时会报错。
一般我们 clone 一个 git 仓库,默认都是一个工作目录,那么对应的配置变量 bare = false。
当我们在用 git 提交代码前,这个是必须要设置的。
以上信息仅供参考,如需了解更多信息,请查阅官网或咨询专业人士。
git checkout 命令详解在日常的git操作中,git checkout——检出,是我们的常用命令。
最为常用的两种情形是创建分支和切换分支。
在下面的命令中,使用了一些简写,在这里说明一下:git st # git statusgit ci # git commitgit br # git branchgit co # git checkoutgit mg # git mergegit line # git log --oneline当然,你也可以直接在git中敲命令,将这些简写添加到git 配置中git config --global -e然后,可以插入下面的配置:[alias]st = statusco = checkoutbr = branchmg = mergeci = commitmd = commit --amenddt = difftoolmt = mergetoollast = log -1 HEADcf = configline = log --onelinelatest = for-each-ref --sort=-committerdate--format='%(committerdate:short) %(refname:short)[%(committername)]'ls = log--pretty=format:\"%C(yellow)%h %C(blue)%ad %C(red)%d %C(reset)%s %C(green)[%cn]\" --decorate --date=short hist = log--pretty=format:\"%C(yellow)%h %C(red)%d %C(reset)%s %C(green)[%an] %C(blue)%ad\" --topo-order --graph--date=shorttype = cat-file -tdump = cat-file -p这样,你也就可以使用这些简写的命令咯。
本地分支解析git 通过可变指针来实现对提交数据的历史版本的控制,每当我们提交新的更新,当前分支(设为master)则指向最后一个提交更新A,而最后一个提交对象则存在一个指针指向前一次的提交更新Q。
如果我们创建一个新的分支,child,它和master共同指向A,这时,如果我们向child分支提交更新B,我们会发现child 指向B,而master依然指向A。
无论我们在child分支进行了任何开发,只要回到master分支,就能恢复到更新A的数据状态了。
在图片里,我们还注意到有一个head指针,一般来说,它会指向我们目前所在的工作分支。
现在它指向了我们的master分支,意思是master是我们目前的工作分支。
一旦提交更新,就会在master分支上提交。
现在,让我们看看与git 分支有关的操作命令:1. git branch [option] [name]如果不使用任何参数,它可以用来查看所有的分支,而在分支名前有*标记的则为主分支,如果加上name为创建新分支,,如git branch child,则会创建一个名为child 的分支,此外,它有一些常用的参数:2. git checkout [name]切换到对应的分支,对于上图,如果我们是使用git checkout child,我们的head 指针就会指向child分支了。
这时候,如果我们提交新的更新D,我们会发现:我们的D指向C,而C依然指向A,也就是说,以后我们在child分支上做的任何更新,都不会对master分支所在的之路造成任何影响!一旦使用了checkout命令,我们还会发现,不仅head指针会指向新的分支,而且当前工作目录中的文件也会换成了新分支对应的文件了。
此外,我们还可以使用git checkout -b [name]命令,它会新建一个分支,并自动将当前的工作目录切换到该分支上。
3. git merge [name]合并分支,有的时候,我们创建次要分支,可能是为了修改原有程序的bug,或为了拓展新的功能,这时候如果我们想把次要分支的修改何并进主分支中,我们可以使用git merge命令来实现。
sourcegit用法在开发项目中,版本控制和代码管理是非常重要的环节。
Git作为目前世界上最流行的分布式版本控制系统,广泛应用于软件开发和维护中,为程序员们提供了非常便捷的协作和管理手段。
在Git中,sourcegit是一个十分实用的命令,下面我们来介绍一下它的用法。
1. 查看源代码在Git中,sourcegit命令可以直接查看源代码,包括文件的修改记录和差异,非常适合程序员们进行版本追踪和比较。
使用如下:```sourcegit show [file path]```其中的[file path]是指要查看的文件路径。
如果想要查看某个提交的修改记录,可以加上commit SHA值:```sourcegit show [commit SHA值]:[file path]```2. 修改历史记录在使用Git进行代码协作和版本管理时,有时候需要对提交的历史记录进行修改或者删除。
sourcegit命令可以在这方面提供很好的支持,使用如下:```sourcegit rebase -i [commit SHA值]```其中的[commit SHA值]是指要修改的提交的哈希值。
在这个命令的交互界面中,你可以对每个提交进行单独编辑,包括修改提交信息、移除某个提交或者合并多个提交。
3. 比较提交除了查看源代码之外,sourcegit还可以用来比对提交内容之间的差异,并提供标记和注释功能。
使用如下:```sourcegit diff [commit SHA值1] [commit SHA值2]```其中的[commit SHA值1]和[commit SHA值2]是指要比较的两个提交的哈希值。
sourcegit会将这两个提交之间不同的内容标记出来,并提供解释和备注功能。
4. 分支管理在Git中,分支管理是非常重要和复杂的功能。
sourcegit命令可以帮助我们更好的处理分支之间的关系,并进行合并、重叠等操作。
使用如下:```sourcegit branch [分支名] [基准分支名]```其中的[分支名]是指要创建或者切换的分支名字,[基准分支名]是指要基于哪个分支来创建或切换。
gitpython使用说明全文共四篇示例,供读者参考第一篇示例:GitPython是一个Python库,用于与Git版本控制系统进行交互。
它提供了简单的API,可以方便地访问Git仓库,并执行一系列Git操作。
本文将介绍如何使用GitPython来管理代码的版本控制。
### 安装GitPython首先,我们需要安装GitPython库。
可以使用pip工具进行安装:```shellpip install gitpython```### 初始化Git仓库在使用GitPython之前,需要先将代码仓库初始化为Git仓库。
可以使用`Repo`类来初始化Git仓库:```pythonfrom git import Reporepo = Repo.init('/path/to/your/repository')```### 获取Git仓库信息可以使用`Repo`对象来获取Git仓库的信息,比如当前分支、提交等信息:```pythonprint(repo.active_branch) # 当前分支print(mit) # 最新提交print(list(repo.iter_commits())) # 所有提交```### 执行Git操作GitPython提供了一系列方法来执行Git操作,比如添加文件、提交、拉取、推送等:```pythonrepo.index.add(['file1.py', 'file2.py']) # 添加文件mit('commit message') # 提交repo.remotes.origin.pull() # 拉取repo.remotes.origin.push() # 推送```### 切换分支可以使用`Repo`对象来切换分支:```pythonrepo.git.checkout('-b', 'new_branch') # 创建并切换到新分支repo.git.checkout('master') # 切换到master分支```### 回滚操作可以使用`git`指令来执行回滚操作:```pythonrepo.git.reset('--hard', 'HEAD^') # 回滚到上一个版本repo.git.revert('HEAD') # 撤销最新的提交```### 其他功能除了上述常用操作外,GitPython还提供了更多的功能,比如查看diff、文件状态、修改历史等:```pythonprint(repo.git.diff()) # 查看当前更改print(repo.is_dirty()) # 是否有未提交的更改print(repo.git.log()) # 查看提交历史```### 总结通过以上介绍,我们可以看到GitPython提供了一套方便的API 来管理Git仓库。
git pull 用法
git pull 是Git 版本控制系统中的一个命令,用于从远程代码仓库拉取最新的更新并合并到本地代码库中。
它的用法如下:
git pull [<remote>] [<branch>]
●<remote>:可选参数,指定要拉取更新的远程代码仓库,默认为origin。
●<branch>:可选参数,指定要拉取更新的分支,默认为当前分支。
例如,要从远程代码仓库的origin 仓库拉取更新并合并到当前分支,可以执行以下命令:
git pull
如果你想从其他远程代码仓库拉取更新,可以指定远程仓库的名称:
git pull upstream
如果你想拉取更新并合并到指定的分支,可以在命令中指定分支名称:
git pull origin main
在执行git pull 命令后,Git 会自动下载远程代码仓库的最新提交,并尝试将其合并到当前分支。
如果合并过程中发生冲突,你需要手动解决冲突后提交更改。
注意:在执行git pull 命令之前,建议先进行提交或者保存本地修改,以免发生冲突或覆盖本地修改。
Git操作说明
使用git之前
下载安装Cygwin Terminal
下载地址
/
安装过成中注意,选择git 和vim 相关选项进行安装完成后执行创建目录(和linux命令一样)
到创建好的目录下
执行
git clone /zople/365Project.git
检出项目
Git 相关命令以及操作流程
1.git config
说明:第一次操作时需要配置git的一些信息
例子:
git config -- global “Your Name”
git config -- global user.email “you@”
2 . git add
说明: 添加新增的内容需要add一下
例子:
git add /home/root/aaa/* (当前目录下所有的更新)
3.git commit
说明: commit如下所示–m返回提交时的信息;
git commit –m “message” -a
4.git pull
在执行push 之前使用pull 确保push之前是最新的
5.git push
push 时会遇到各种问题需要merge 需要编辑后处理冲突问题之后再执行commit再push
如果没有文件冲突问题就会很成功提交
6.git rm
删除不需要的文件;在删除之前执行下pull
然后commit 再执行push
7更多强大命令,在用的时候大家共同研究,更新
执行下git help
$ git help
usage: git [--version] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
[-c name=value] [--help]
<command> [<args>]
The most commonly used git commands are:
add Add file contents to the index
bisect Find by binary search the change that introduced a bug
branch List, create, or delete branches
checkout Checkout a branch or paths to the working tree
clone Clone a repository into a new directory
commit Record changes to the repository
diff Show changes between commits, commit and working tree, etc
fetch Download objects and refs from another repository
grep Print lines matching a pattern
init Create an empty git repository or reinitialize an existing one log Show commit logs
merge Join two or more development histories together
mv Move or rename a file, a directory, or a symlink
pull Fetch from and merge with another repository or a local branch push Update remote refs along with associated objects
rebase Forward-port local commits to the updated upstream head
reset Reset current HEAD to the specified state
rm Remove files from the working tree and from the index
show Show various types of objects
status Show the working tree status
tag Create, list, delete or verify a tag object signed with GPG 分支的建立,合并,和删除用的时候再研究。