Git常用操作命令收集
git push命令用法
git push命令用法git push命令用法1. 简介git push是Git中用于将本地的代码推送到远程仓库的命令。
它是Git中最常用的命令之一,具有广泛的应用场景。
2. 基本用法•git push <远程仓库名> <分支名>:将本地指定分支的代码推送到指定的远程仓库。
3. 实例演示1.创建一个新的Git仓库:git init2.添加文件:git add .3.提交文件:git commit -m "Initial commit"4.关联远程仓库:git remote add origin <远程仓库URL>5.将本地代码推送到远程仓库:git push origin master4. 推送指定分支•git push <远程仓库名> <本地分支名>:<远程分支名>:将指定的本地分支推送到指定的远程分支。
5. 实例演示1.创建一个新的Git仓库:git init2.添加文件:git add .3.提交文件:git commit -m "Initial commit"4.关联远程仓库:git remote add origin <远程仓库URL>5.将本地分支develop推送到远程分支feature:git pushorigin develop:feature6. 推送所有分支•git push <远程仓库名> --all:将所有本地分支推送到指定的远程仓库。
7. 实例演示1.创建一个新的Git仓库:git init2.添加文件:git add .3.提交文件:git commit -m "Initial commit"4.关联远程仓库:git remote add origin <远程仓库URL>5.将所有本地分支推送到远程仓库:git push origin --all8. 强制推送•git push <远程仓库名> --force:在需要强制更新远程仓库的情况下使用。
git命令之gitclone用法教程
git命令之git clone用法教程自上个世纪九十年代以来,Linux系统得到了快速的发展,由于Linux继承了UNIX的以网络为核心的设计思想,采用模块化的设计结构,使得Linux取得了广泛的应用。
接下来是小编为大家收集的git命令之git clone用法教程,希望能帮到大家。
git命令之git clone用法教程在使用git来进行版本控制时,为了得一个项目的拷贝(copy),我们需要知道这个项目仓库的地址(Git URL). Git能在许多协议下使用,所以Git URL可能以ssh://, http(s)://, git://,或是只是以一个用户名(git 会认为这是一个ssh 地址)为前辍.有些仓库可以通过不只一种协议来访问,例如,Git本身的源代码你既可以用 git:// 协议来访问:git clone git:///pub/scm/git/git.git也可以通过http 协议来访问:git clone /pub/scm/git/git.gitgit://协议较为快速和有效,但是有时必须使用http协议,比如你公司的防火墙阻止了你的非http访问请求.如果你执行了上面两行命令中的任意一个,你会看到一个新目录: 'git',它包含有所的Git源代码和历史记录.在默认情况下,Git会把"Git URL"里最后一级目录名的'.git'的后辍去掉,做为新克隆(clone)项目的目录名: (例如. git clone /linux/kernel/git/torvalds/linux-2.6.git 会建立一个目录叫'linux-2.6')另外,如果访问一个Git URL需要用法名和密码,可以在Git URL 前加上用户名,并在它们之间加上@符合以表示分割,然后执行git clone命令,git会提示你输入密码。
示例git clone robin.hu@/pub/scm/git/git.git这样将以作为robin.hu用户名访问/pub/scm/git/git.git,然后按回车键执行git clone命令,git会提示你输入密码。
git stash方法
git stash方法Git stash方法是一种将当前工作目录的状态保存起来,以便以后恢复或应用的操作。
以下是使用Git stash的一些常见方法:1. 保存当前工作目录状态:使用git stash save "message"命令可以将当前工作目录的状态保存起来,并添加一条描述信息。
例如,如果你正在进行某个改动,但是突然需要切换到另一个分支,你可以使用git stash save "work-in-progress"来保存当前的工作状态。
2. 查看保存的工作目录状态列表:使用git stash list命令可以查看当前保存的所有工作目录状态列表。
每个状态都有一个唯一的标识符和对应的描述信息。
3. 查看特定工作目录状态的内容:使用git stash show [stash]命令可以查看某个特定工作目录状态的内容。
默认情况下,会显示最新的工作目录状态。
4. 应用特定的工作目录状态:使用git stash apply [stash]命令可以将某个工作目录状态的变更应用到当前工作目录。
这个状态不会从列表中移除。
如果不指定状态,默认会应用最新的状态。
5. 弹出并删除特定的工作目录状态:使用git stash pop [stash]命令类似于git stash apply,但在应用完状态后会将该状态从列表中删除。
6. 删除特定的工作目录状态:使用git stash drop [stash]命令可以删除某个工作目录状态,从列表中移除。
如果不指定状态,默认会删除最新的状态。
7. 清除所有保存的工作目录状态:使用git stash clear命令可以删除所有的工作目录状态,慎用,它会清除所有保存的状态记录。
8. 创建新分支并应用特定的工作目录状态:使用git stash branch<branch_name> [stash]命令可以创建一个新分支并将某个工作目录状态的变更应用到新分支上。
git checkout 命令详解
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常用命令解释
GIT ANG REPOUSAGE1 git command1.1 git add∙git add . #将文件先暂存到staging area, stages new and modified, without deleted∙git add -A #states all∙git add -u #states modified and deleted, without new∙git add -i #进入互动模式∙git add filename #新增一个文件∙git add modify-file #修改过得文档也要加add,不然在commit时要加-a 1.2 git rm #删除文件∙git rm filename1.3 git mv #修改文件名,或搬移目录∙git mv filename newfilename1.4 git status #查看状态1.5 git commit∙git commit∙git commit -m 'commit message'∙git commit -a -m "message"∙git commit -a -v #-v查看修改的内容1.6 git branch∙git branch #列出所有的分支∙git branch new-branch #产生新的分支∙git branch new-branch master #由master产生新的分支∙git branch -d branch #删除分支∙git branch -D branch #强制删除分支∙git checkout -b new-branch #产生新分支并切换过去∙git branch -r #列出所有repository branch∙git branch -a #列出所有分支1.7 git checkout∙git checkout branch-name #切换到branch-name∙git checkout master #切换到master∙git checkout -b new-branch master #从master建立新的分支,并切换过去∙git checkout -b new-branch #由当前分支建立新分支∙git checkout -b new-branch origin #由origin建立分支∙git checkout filename #还原状态到repository状态∙git checkout HEAD . #将所有文件都checkout出来∙git checkout xxxx . #xxxx是commit的编号的前四位,将xxxx编号的版本checkout出来∙git checkout – * #恢复上一次commit的状态1.8 git diff∙git diff master #与master对比看哪些文件不同∙git diff –cached #比较staging area与repository∙git diff tag1 tag2 #tag1与tag2比较∙git diff tag1:file1 tag2:file2 #tag1的file1与tag2的file2比较∙git diff #当前与staging area比较∙git diff HEAD #当前与repository比较∙git diff new-brach #当前与new branch的比较∙git diff –stat1.9 git tag∙git tag v1 ebff #为commit ebff810c462234433434323334343设置标记v1 ∙git tag 版本1 ebff #tag可以为中文∙git tag -d 版本1 #删除标记版本11.10 git log∙git log #列出所有log∙git log –all∙git log -p #列出log及修改的内容∙git log -p filename #将filename的log及修改内容列出来∙git log –name-only #列出哪些文件被修改∙git log –stat –summary #列出各个版本间的改动及行数∙git log filename #这个文件的所有log∙git log directory #这个目录的所有log∙git log -S'FUNC()‘ #列出由FUNC()这个字符串的log∙git log –no-merges #不要列出merge的log∙git log –since="2 weeks ago" #列出最后两周的log∙git log –pretty=oneline∙git log –pretty=short1.11 git show∙git show ebff #显示commit ebff810xxxxxxxxxxx的内容∙git show v1 #显示tag v1的修改内容∙git show v1:hello.txt #显示tag:v1的hello.txt文件修改内容∙git show HEAD #当前版本的修改文件∙git show HEAD^ #前一版本所有修改的文件∙git show HEAD~4 #前4版本的修改文件1.12 git reset∙git reset –hard HEAD^ #还原到前一版本∙git reset –soft HEAD~31.13 git grep∙git grep "hello" v1 #查找tag:v1中是否由“hello"字符串∙git grep "hello"1.14 git stash∙git stash #放进暂存区∙git stash list #列出暂存区的文件∙git stash pop #取出最新的一笔,并移除∙git stash apply #取出但不移除∙git stash clear #清除暂存区1.15 git merge∙git merge #合并1.16 git blame∙git blame filename #列出此文件所有commit的记录1.17 git ls-files∙git ls-files -d #查看已删除的文件∙git ls-files -d | xargs git checkout – #将已删除的文件还原1.18 git revert∙git revert HEAD #回到前一此commit的状态∙git revert HEAD^ #回到上上一次的状态1.19 git remote∙git remote∙git remote add new-branch /project.git #增加远程repository的branch∙git remote show #列出现在由多少repository∙git remote rm new-branch #删除服务器上的新分支∙git remote update #更新所有repository branch1.20 git fetch∙git fetch origin1.21 git push∙git push origin:heads/xxx-branch2 repo command2.1 repo init∙repo init -u URL #在当前目录安装repo,该命令创建一个.repo文件夹,文件夹中包含一些git仓库,这些仓库包含着repo源代码何manifest文件。
git rebase命令用法
一、什么是git rebase命令Git rebase命令是Git版本控制系统中的一条重要命令,它的主要作用是将一条分支的提交记录复制到另一条分支上,从而改变分支的基础。
通过使用git rebase命令,我们可以实现将当前分支中的提交记录移动到另一个分支上,或者改变提交记录的顺序,是进行分支管理和提交记录整理的重要工具。
二、git rebase命令的基本用法1. 切换到目标分支在进行git rebase操作之前,首先需要切换到目标分支,即想要将提交记录复制到的分支上。
假设我们想要将feature分支的提交记录复制到master分支上,那么首先需要在命令行中执行以下命令:```git checkout master```2. 执行git rebase命令切换到目标分支后,就可以执行git rebase命令了。
git rebase命令的基本用法如下:```git rebase <branch>```其中,<branch>是指想要将提交记录复制到的目标分支的名称。
在上述例子中,我们需要执行以下命令:```git rebase feature```执行该命令后,Git会将feature分支上的提交记录复制到master分支上,并且重新应用之前在master分支上的提交记录,从而生成一个新的提交历史。
3. 处理冲突在执行git rebase命令时,如果目标分支与当前分支存在冲突,那么Git会暂停rebase过程并提示用户解决冲突。
此时,用户需要手动解决冲突,并执行以下命令:```git add <conflict files>git rebase --continue```通过以上命令,用户可以将解决冲突后的文件标记为已解决,并继续进行rebase操作。
4. 中止rebase操作在执行git rebase命令的过程中,如果用户希望中止rebase操作,可以执行以下命令:```git rebase --abort```该命令将撤销rebase操作,并恢复到rebase操作之前的状态。
git分支原理命令图文解析
本地分支解析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命令来实现。
gitmerge用法
gitmerge用法Git是一种强大的版本控制工具,用于管理版本控制。
在团队开发中,每个开发人员都会在本地修改代码,并将更改push到远程Git存储库中。
但是,如果多个开发人员同时修改了同一文件会出现冲突,这时就需要使用git merge命令来合并更改。
以下是git merge命令的用法。
1.合并两个分支$ git merge branch1 branch2这个命令将branch1和branch2两个分支合并到当前所在的分支中。
2.快进合并(Fast-forward Merge)快进合并是一种简单的合并策略,只是将目标分支移到源分支上,对于当前分支没有历史记录的情况下会自动快进合并。
3.合并后可能产生冲突在执行git merge命令后,如果有冲突产生,Git会提示您需要手动处理冲突。
这意味着您需要在编辑器中打开冲突的文件,并解决冲突。
通常,Git会标记冲突部分并在文件中使用<<<<<<<,=======,和>>>>>>>来提示。
4.合并冲突解决后,需要将修改提交到仓库中$ git add <file>$ git commit -m "commit message"5.取消合并(Abort the Merge)如果一旦开始合并进入紧急状态,可以取消合并步骤。
在开发新功能时,通常会创建一个新分支,以便将这些更改与其他开发人员的更改隔离开来。
通过使用git merge命令,可以将修改的代码合并到主分支中,在主分支中测试并进行代码审核。
2.解决代码冲突当多个开发人员同时编辑同一文件时,就会出现冲突。
这时,使用git merge命令可以将这些更改合并到一起,并保留每个开发人员的历史记录。
四、git merge命令的注意事项1.在使用git merge命令之前,请确保在正确的分支中,否则会出现合并错误。
git rebase命令的用法
一、概述在日常的软件开发中,版本控制是非常重要的一环。
而在现代的软件开发中,Git已经成为了最为流行的版本控制工具之一。
Git提供了一系列的命令来管理代码的版本,其中git rebase命令就是其中之一。
本文将介绍git rebase命令的用法,帮助读者更好地理解和使用这一命令。
二、git rebase命令的作用git rebase命令的主要作用是将一个分支的提交应用到另一个分支上。
通常情况下,我们使用git rebase命令来将一个分支的修改合并到另一个分支上,而不是使用git merge命令。
相比于git merge,git rebase能够保持提交的顺序,使得提交历史更加清晰和整洁。
三、git rebase命令的基本用法1. 将当前分支的提交应用到另一个分支上使用git rebase命令,可以将当前分支的提交应用到目标分支上。
具体的命令是:```git checkout <target-branch>git rebase <source-branch>```2. 解决冲突在执行git rebase命令的过程中,可能会出现冲突。
当出现冲突时,我们需要手动解决这些冲突,然后使用以下命令继续执行git rebase: ```git add <conflicted-file>git rebase --continue```3. 终止git rebase如果在执行git rebase命令的过程中出现了问题,可以使用以下命令来终止git rebase:```git rebase --abort```四、git rebase命令的注意事项在使用git rebase命令时,需要注意以下几点:1. 尽量避免对已经推送到远程仓库的提交执行git rebase操作,这可能会导致提交历史的不一致。
2. 在执行git rebase命令的过程中,需要处理可能出现的冲突,确保合并后的代码是正确的。
git入门(常用命令操作)
Page 23
本地版本控制 04 Local Version Control
Page 24
4.1 添加修改
· 如图给 helloworld.cpp 添加一行文本
* Git 已追踪文件的图标会随着工作区状态的改变而改变
Page 25
4.1 添加修改
· 使用 git status 命令查看当前仓库工作区的状态
Page 4
1.2 集中式版本控制系统(CVCS)
· 集中式版本控制系统(CVCS): 这类系统,诸如 CVS,Subversion 以及 Perforce 等,都有一个单一的 集中管理服务器,保存所有文件的修订版本,而协同工作的开发人员都通过 客户端连到这台服务器,取出最新的文件或者提交更新。 这么做最显而易见的缺点是中央服务器的单点故障。如果宕机一小时, 那么在这一小时内,谁都无法提交更新,也就无法协同工作。要是中央服务 器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就还是会有丢失数 据的风险,最坏的情况是彻底丢失整个项目的所有历史更改记录。
Page 35
4.4 撤销修改
撤销修改分为三种情况: · 仅仅修改了工作区内容,未添加到暂存区 · 修改了工作区内容并且添加到暂存区,但未提交修改 · 修改被添加到暂存区并且提交了修改
Page 36
4.4 撤销修改
情况一: 仅仅修改了工作区内容,未添加到暂存区(没有经过 add 和 commit 的修改),如图
* --global 表示设置的范围(系统,全局,项目)
· 修改前需要先使用 --unset 参数清空需要修改的设置 $ git config --unset --global
Page 15
2.1 Git 的帮助与初始化
pull命令的使用
pull命令的使用Pull命令的使用一、概述Git是目前最流行的分布式版本控制系统,而Pull命令是Git中用于从远程仓库获取代码更新的命令。
通过使用Pull命令,我们可以将远程仓库中的最新代码同步到本地仓库,以便我们在本地进行开发、测试和修改。
二、Pull命令的语法在使用Pull命令之前,我们需要先进入到我们的本地仓库所在的目录下。
然后,我们可以使用以下语法来执行Pull命令:git pull [选项] [远程仓库名] [分支名]其中,选项可以是以下之一:- -v或--verbose:显示更详细的更新信息;- --progress:显示更新进度信息;- --no-rebase:执行Merge而不是Rebase操作;- --rebase[=false|true|preserve|interactive]:执行Rebase操作。
远程仓库名是指我们要从哪个远程仓库获取代码更新,而分支名是指我们要获取哪个分支的代码更新。
如果不指定分支名,默认使用当前分支。
三、Pull命令的使用示例下面是几个Pull命令的使用示例:1. 获取默认远程仓库的默认分支的代码更新:git pull2. 获取指定远程仓库的默认分支的代码更新:git pull origin3. 获取指定远程仓库的指定分支的代码更新:git pull origin dev四、Pull命令的执行流程当我们执行Pull命令时,Git会自动执行以下操作:1. 首先,Git会连接到指定的远程仓库,并检查远程仓库是否有新的代码更新。
2. 如果有新的代码更新,Git会将这些更新下载到本地仓库的一个临时区域。
3. 然后,Git会自动将本地仓库当前分支的最新提交(Commit)与临时区域中的代码更新进行合并(Merge)或变基(Rebase)操作。
4. 如果是合并操作,Git会自动创建一个新的合并提交,将本地仓库的当前分支与临时区域中的代码更新合并在一起。
5. 如果是变基操作,Git会将本地仓库的当前分支的提交(Commit)应用到临时区域中的代码更新之上,然后将临时区域中的代码更新合并到本地仓库的当前分支。
git pick 流程
Git Pick流程Git是一种分布式版本控制系统,它允许团队协作及跟踪文件的更改历史。
GitPick是一个流程,用于选择Git仓库中的某个特定提交(commit)或分支的变更,并将其应用于其他分支。
本文将详细介绍Git Pick的步骤和流程。
1. 创建新的分支创建一个新的分支用于存储从其他分支中提取的提交。
可以使用以下命令创建新分支:git checkout -b <new-branch-name>2. 查找提交通过使用git log命令查找要应用的提交。
可以使用以下命令查看提交历史:git log提交历史将按照时间顺序显示。
找到要应用的提交,并复制其提交哈希值。
3. 应用提交运行以下命令,将特定提交应用于当前分支:git cherry-pick <commit-hash><commit-hash>是之前复制的提交哈希值。
Git Pick将应用选定提交的更改并创建一个新的提交。
4. 处理冲突如果选定的提交与当前分支的更改冲突,Git将会产生冲突标记并停止应用。
此时需要手动解决冲突,并继续应用提交。
可以使用以下命令查看冲突文件:git status打开冲突文件,并查找带有冲突标记的部分。
编辑文件以解决冲突,并将结果保存。
完成后,运行以下命令标记文件冲突已解决:git add <conflict-file><conflict-file>是包含冲突的文件名。
重复以上步骤,直到所有冲突都解决完毕,并将所有更改添加到暂存区。
5. 提交更改一旦所有冲突已解决并且更改已添加到暂存区,可以使用以下命令提交更改:git commit这将打开编辑器,用于编写提交消息。
编写一条有意义的提交消息,描述所做的更改,并保存退出编辑器。
6. 推送更改推送更改以将其应用于远程仓库。
可以使用以下命令将更改推送到远程仓库:git push origin <new-branch-name><new-branch-name>是之前创建的新分支的名称。
git pull 用法
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管理代码仓库需要掌握的⼏个必备技巧和知识点总结1. Git的三种状态已提交 committed已暂存 staged已修改 modified2. Git的三个区域1. Git仓库是 Git ⽤来保存项⽬的元数据和对象数据库的地⽅。
这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这⾥的数据。
2. 暂存区域暂存区域是⼀个⽂件,保存了下次将提交的⽂件列表信息,⼀般在 Git 仓库⽬录中。
有时候也被称作`‘索引’',不过⼀般说法还是叫暂存区域。
3. ⼯作⽬录⼯作⽬录是对项⽬的某个版本独⽴提取出来的内容。
这些从 Git 仓库的压缩数据库中提取出来的⽂件,放在磁盘上供你使⽤或修改。
3. 基本的 Git ⼯作流程1. 在⼯作⽬录修改⽂件2. 暂存⽂件,将⽂件的快照放⼊暂存区3. 提交更新,找到暂存去⽂件,将快照永久性存储到 Git 仓库⽬录。
3.1 ⽤户信息[!NOTE]当安装完 Git 应该做的第⼀件事就是设置你的⽤户名称与邮件地址。
这样做很重要,因为每⼀个 Git 的提交都会使⽤这些信息,并且它会写⼊到你的每⼀次提交中,不可更改。
git config --global "huyaocode"git config --global user.email johndoe@3.2 加⼊暂存区git add ⽂件名或路径3.3 忽略⽂件创建⼀个.gitignore⽂件,可描述需要忽略的⽂件。
参考# no .a files*.a# but do track lib.a, even though you're ignoring .a files above!lib.a# 只忽略当前⽂件夹下已 TODO 为名的⽂件/TODO# 忽略当前⽬录下 build 这个⽂件夹build/# ignore doc/notes.txt, but not doc/server/arch.txtdoc/*.txt# ignore all .pdf files in the doc/ directorydoc/**/*.pdf3.4 状态修改git status -s将每个修改状态以⼀⾏展⽰,也可以⽤git status多⾏展⽰。
Git的常用命令
Git的常⽤命令Git常⽤命令汇总以及其它相关操作⼀、常⽤的git命令--⽂件⽬录操作命令mkdir * 创建⼀个空⽬录 *指⽬录名pwd显⽰当前⽬录的路径。
cat * 查看*⽂件内容git rm * 删除**⽂件--git初始化操作git init 把当前的⽬录变成git仓库,⽣成隐藏.git⽂件。
git remote add origin url 把本地仓库的内容推送到GitHub仓库。
git clone git@url/test.git 从远程库克隆git add * 把x⽂件添加到暂存区去。
git commit –m "*"提交⽂件 –m 后⾯的是注释。
--git 克隆分⽀git clone xxx.git 最简单直接的命令git clone xxx.git "指定⽬录" clone到指定⽬录git clone -b branchname xxx.git clone时创建新的分⽀替代默认Origin HEAD(master)--clone 远程分⽀ git clone 命令默认的只会建⽴master分⽀,如果你想clone指定的某⼀远程分⽀(如:dev)的话,可以如下: 1. 查看所有分⽀(包括隐藏的) git branch -a 显⽰所有分⽀ * masterremotes/origin/HEAD -> origin/masterremotes/origin/devremotes/origin/master2. 在本地新建同名的("dev")分⽀,并切换到该分⽀git checkout -t origin/dev#该命令等同于:git checkout -b dev origin/dev--查看命令git status 查看仓库状态git diff * 查看X⽂件修改了那些内容git log 查看历史记录git reflog 查看历史记录的版本号id(记录你的每⼀次命令,不论是否提交)git log --pretty=oneline 如果信息量太多可以进⾏⽐较好的列表显⽰--版本回退git reset –hard HEAD^ 回退到上⼀个版本git reset --hard HEAD~第⼏个如果想回退到第3个版本,使⽤git reset –hard HEAD~3git reset --hard 057d 回退到某⼀个具体的版本号--撤销修改git checkout file-name 恢复某个已修改的⽂件(撤销未提交的修改):git revert HEAD 还原最近⼀次提交的修改:git revert commit-id还原指定版本的修改--分⽀管理git branch 查看本地所有的分⽀git branch -a 查看远程所有的分⽀git branch name 创建分⽀git branch –d dev 删除dev分⽀git push origin --delete dev 删除远程的dev分⽀git branch -m dev develop 重命名分⽀git checkout –b dev 创建dev分⽀并切换到dev分⽀上git merge dev 在当前分⽀上合并dev分⽀代git push origin zyf-dev 把当前新增的zyf-dev分⽀推送到远程库(远程仓库没有给分⽀则会新建⽴该分⽀)git checkout — * 把XX⽂件在⼯作区的修改全部撤销。
git pull 的用法
git pull 的用法摘要:1.简介2.git pull 的概念3.git pull 的用法a.本地仓库与远程仓库的关联b.拉取远程仓库的更新c.合并远程仓库的更新4.常见问题及解决方法a.冲突解决b.忽略文件或文件夹5.小结正文:Git 是一款非常强大的分布式版本控制系统,它可以帮助开发者高效地进行代码管理和协同工作。
在Git 中,pull 操作是一个非常重要的功能,它可以实现本地仓库与远程仓库的同步。
本文将详细介绍git pull 的用法及相关问题。
## 1.简介Git pull 命令用于将远程仓库的最新更改拉取到本地仓库,并尝试将远程仓库的更改合并到本地分支。
在团队协作中,使用pull 命令可以让开发者在本地查看、修改和提交远程仓库的更新,从而确保代码的同步和一致性。
## 2.git pull 的概念在了解git pull 的具体用法之前,我们需要先了解两个关键概念:本地仓库(local repository)和远程仓库(remote repository)。
- 本地仓库:指的是存储在本地计算机上的Git 仓库,通常用于个人的开发工作。
- 远程仓库:指的是存储在网络上的Git 仓库,通常用于团队协作。
## 3.git pull 的用法### 3.1 本地仓库与远程仓库的关联在使用git pull 之前,需要确保本地仓库已经与远程仓库建立了关联。
关联的方法如下:```git remote add origin <远程仓库地址>```其中,`<远程仓库地址>` 可以是远程仓库的HTTP 地址或SSH 地址。
### 3.2 拉取远程仓库的更新使用如下命令可以拉取远程仓库的最新更改:```git pull origin <远程仓库分支名>```其中,`<远程仓库分支名>` 是指要拉取的远程仓库分支的名称。
执行该命令后,本地仓库会更新到与远程仓库对应的分支。
git基础操作命令
1. git pull 更新服务器代码到本地a). git pull origin master是将origin这个版本库的代码更新到本地的master主分支2. git push 将本地代码提交到服务器3. git log 查看提交信息a). git log -p 查看历次的log信息及更改情况b). git log -p -4 查看距现在最近的4次的log信息及更改情况c). git log frameworks/ 查看关于frameworks/目录修改相关的log信息d). git log --stat 查看log显示文件修改情况e). git log --stat packages/apps/Contacts/ 查看关于packages/apps/Contacts/目录修改相关的log显示的文件修改情况4. git status查看工作目录和代码仓库的改动情况,这个比较重要,可以查看你自己代码哪些需要上传,然后再去add commit5. git diff 查看工作目录和本地仓库的差异或者本地仓库各个版本的差异a). git diff packages/apps/Contacts/AndoridManifest.xml 查看工作目录中AndoridManifest.xml和本地仓库中AndoridManifest.xml的不同b). git diff b46cae3b9a377bcd9cfc249a5778fce647feb961dc94bf29aab18168e79d6496a89e47dba7a1d494 查看这两个版本的不同(git diff history_oldhistory_current)c)git diff84d7c8bf6fde87316f693015d4a541a1adf037b3 b39cf58eea2f7733723ad90d104b83774136efa8 pa ckages/apps/Phone/src/com/android/phone/CallCard.java 查看两个版本之间针对特写文件的变化6. git commit 提交当前修改内容a). git commit file1 file2 -m "log message" 提交file1,file2到本地仓库b). git commit -a -m "log message" 提交所有在Git索引中的改动,所以事先先用git status,看自己代码和服务器的对比有哪些改动,最好不用-a7. git add 增加文件到Git索引a). git add file3 file4将file3,file4加入到Git索引中8. git rm 从Git索引移除文件a). git rm file3 将file3从Git索引中删除9. git branch 对分支的增、删、查操作a). git branch 显示所有本地分支b). git branch new_branch 在当前版本创建一个名为new_branch的分支c). git branch -D new_branch 强制删除名为new_branch的分支10. git checkout 在不同的branch切换和还原文件a). git checkout branch1 切换到branch1分支b). git checkout /packages/apps/Contacts/AndroidManifest.xml 会将AndroidManifest.xml文件从上一次提交的版本更新回来,未提交的部分会全部回滚11. git reset 将当前的工作目录完全回滚到指定的版本号a). git reset [--fixed] 3204f2f0bdfd6ada86c587b8927cdc5a15c586c1 只更新索引,不更新工作目录,也就是说所有的本地文件都不会更新b). git reset [--soft] 3204f2f0bdfd6ada86c587b8927cdc5a15c586c1c). git reset [--hard] 3204f2f0bdfd6ada86c587b8927cdc5a15c586c1 强制回滚到指定版本号,未提交的和此版本之后的更改全部删掉12. git mergea). git merge branch1 将branch1的改动合并到当前所在分支13. git patcha). git format-patch -1 打一个当前提交的补丁,也就是最后一次的提交改动b). git fromat-patch -1 6525c43add803bfee37cf5c1cb573ed8aecf529e 打一个指定具体某一次的补丁c). git format-patch -2 6525c43add803bfee37cf5c1cb573ed8aecf529e 打基于指定具体某个版本的接连两次的补丁15.git reset HEAD^表示回退刚刚的提交, git reset HEAD^^ 表示回退刚两次的提交,以此类推, 补充一下16.git format-patch -1 打印刚刚提交的一版的patch,相当于svn diff17.git show 查看当前提交的版本18.git show ffd98b291e0caa6c33575c1ef465eae661ce40c9 查看指定版本的文件19.git show ffd98b291e0caa6c33575c1ef465eae661ce40c9:filename 查看指定版本的某个文件20.git show 2010-Aug-12 查看指定tag的文件21.git remote show 查看远程仓库的信息22.git remote show origin 查看某个远程仓库的详细信息,比如要看所克隆的origin仓库23.git revert -n hashcode : git撤销某次历史提交; -n 不加的话,相当于撤销后的树状态也提交了,加了-n只是工作树回退了那次提交的内容,工作树处于待提交状态24.git show 9f5202b77bdd33f885207b618b7b2a78b6671813packages/apps/FM/src/com/hymost/fm/ui/FMRadio.java 查看特定版本特定文件的修改25.git diff 6af41d3 d67778 packages/apps/Music/>2.patch这个非常有用, 6af41d3 比d67778 新, 上句这样做的好处是可以产生从6af41d3 到d67778的反向diff ,把这个反向diff 写入2.patch,这样谁打了2.patch,谁就等于作了一次6af41d3 版本在对packages/apps/Music上所做修改的文本回退(如果该版本对这个目录的改动是有错的需要回退的,这是个好办法).回退,千万少用revert和reset ,这两个动作和危险,容易导致结点丢失.Changes to be committed:# (use "git reset HEAD <file>..." to unstage) //reset 加--soft 会保持文件的stage状态,(to be committed,这往往是被撤消的提交中的文件,stage中的文件的修改是diff不出来的), 如果不加(默认:mixed)就会把所有mark to be committed的文件全unstage掉,这时可以diff出来该文件的改动了## modified: packages/apps/Contacts/src/com/android/contacts/ContactsUtils.java //不会被diff出来, ## Changed but not updated: //会被diff出来# (use "git add <file>..." to update what will be committed)# (use "git checkout -- <file>..." to discard changes in working directory)## modified: frameworks/base/core/java/com/android/internal/app/RingtonePickerActivity.java# modified: frameworks/base/media/java/android/media/RingtoneManager.java## Untracked files: //不会参与版本管理,除非用git add进来# (use "git add <file>..." to include in what will be committed)补充一下: reset --hard hashcode就是相当于check out 掉所以从此hashcode之后的所有本地修改了,很危险,慎用.revert hashcode1相当于reset --hard, 不过它的指针不回退,反而是在当前HEAD之上再加一个版本,而该版本在文本上相当于hashcode1之前一个版本的文本内容,但这时候指针都没丢,反而还多了一个,这时候想回过来有办法,就是reset --hard 到HEAD^就行了,一切都回来了,等于什么也没做过.不过尽量不要用revert. 这已经是一个deprecated 命令了.其实对于像1->2->3->4->5,这样的版本链上,如果2->3东西有问题,想回掉这部分修改,却不影响3后面的修改,最好的办法就是不要通过指针来实现,而是通过本文修改来实现新增一个6版本,盖在5之上,我们只要把2->3的patch拿过来,在当前5的基础上,打个反向patch就行: git apply -R 2to3.patch, 这时你的本地代码从文本上就达到了你要想的结果,就是5的状态下把2->3的修改抹掉. 不过打patch有一点要注意,我们尽量不要把png等图片的patch放里头,这样会很慢,图片的二进制码很大. 而且我们可以对patch 进行修改,回退我们想要回退的文件和修改.26. 问题:1->2->3->4->5(本地和服务器上都是这个状态)如果你想把package/app/Contacts从5这个结点的内容恢复到2这个结点,但又想让HEAD指针保持在5上,怎么做?(1)首先,git checkout 78350ad27ed3ad070bc0b5044ec594e70800aded(结点2的hashcode) packages/apps/Contacts/此时,你git log 看到的最新的commit结点会是:commit ba5ca90406bd6aaba3c54c46e9d143829b6a52fb-----结点6Merge branch 'master' of 192.168.10.104:repositories/7x27a-2045这句话到底做了件什么事呢,首先它把packages/apps/Contacts/的内容恢复到2这个结点的状态,然后并最新的内容修改(即恢复后的)做为一个新的结点6来在5的后面提交一个新的结点,所以现在情况变成了:1->2->3->4->5->6(2)但是我们又不想增加新结点,怎么办呢,很简单,只要软reset一下就行,也就是:git reset 5点的hashcode,这样子你再用git diff 就会发现相当于你把package/app/Contacts下面的内容都手动准确地改到了2结点的状态,指针链还是保持在原来的1->2->3->4->5。
git push的使用
git push的使用
git push是一个常用的Git命令,用于将本地代码推送到远程仓库。
它会将本地分支的更新内容上传到远程仓库,并与远程分支进行合并。
下面是git push的使用方法:
1.首先,确保您已经在本地完成了一些代码修改,并且已经通过git add和git commit命令将这些修改提交到了本地仓库。
2. 确认您已经设置好了与远程仓库的连接,可以使用git remote -v命令查看当前配置的远程仓库地址。
3.执行git push命令,后面跟上远程仓库的名称和分支名。
例如,如果远程仓库名称为origin,要推送到main分支,则命令为git pushorigin main。
也可以简写为git push,因为Git 会根据当前所在分支自动推断出远程仓库和分支。
4.如果远程仓库有新的提交,而且与本地仓库产生冲突,Git将提示您解决冲突或者执行合并操作。
您需要根据具体情况进行处理。
5.输入远程仓库的用户名和密码(如果使用了HTTPS方式进行远程访问),以验证身份。
6.当推送成功后,Git将显示推送的结果信息,包括推送到哪个分支、新增了哪些提交等。
需要注意的是,git push 只会将您本地仓库中的提交推送到远程仓库,并不会影响其他人的代码。
如果其他人在您推送之前已经向远程仓库提交了新的代码,您需要先执行git pull命令来获取最新的代码,然后再进行推送。
此外,还可以使用一些额外的参数和选项来进行更复杂的操作,例如指定推送的分支、强制推送、设置默认的推送行为等。
您可以通过git push--help命令查看详细的帮助文档,以了解更多关于git push的用法和选项。
Gitcommit常见用法
Gitcommit常见⽤法Git commitgit commit 主要是将暂存区⾥的改动给提交到本地的版本库。
每次使⽤git commit 命令我们都会在本地版本库⽣成⼀个40位的哈希值,这个哈希值也叫commit-id, commit-id在版本回退的时候是⾮常有⽤的,它相当于⼀个快照,可以在未来的任何时候通过与git reset的组合命令回到这⾥.1.1 git commit -m “message”这种是⽐较常见的⽤法,-m 参数表⽰可以直接输⼊后⾯的“message”,如果不加 -m参数,那么是不能直接输⼊message的,⽽是会调⽤⼀个编辑器⼀般是vim来让你输⼊这个message, message即是我们⽤来简要说明这次提交的语句。
还有另外⼀种⽅法,当我们想要提交的message很长或者我们想描述的更清楚更简洁明了⼀点,我们可以使⽤这样的格式,如下:git commit -m ‘message1message2message3’1.2 git commit -a -m “massage”其他功能如-m参数,加的-a参数可以将所有已跟踪⽂件中的执⾏修改或删除操作的⽂件都提交到本地仓库,即使它们没有经过git add 添加到暂存区,注意, 新加的⽂件(即没有被git系统管理的⽂件)是不能被提交到本地仓库的。
建议⼀般不要使⽤-a参数,正常的提交还是使⽤git add先将要改动的⽂件添加到暂存区,再⽤git commit 提交到本地版本库。
1.3 git commit --amend如果我们不⼩⼼提交了⼀版我们不满意的代码,并且给它推送到服务器了,在代码没被merge之前我们希望再修改⼀版满意的,⽽如果我们不想在服务器上abondon,那么我们怎么做呢?git commit --amend //也叫追加提交,它可以在不增加⼀个新的commit-id的情况下将新修改的代码追加到前⼀次的commit-id中,(1)假如现在版本库⾥最近的⼀版正是我们想要追加进去的那版,此时是最简单的,直接修改⼯作区代码,然后git add,之后就可以直接进⾏git push到服务器,中间不需要进⾏其他的操作如git pull等(2)如果现在版本库⾥最近的⼀版不是我们想要追加进去的那版,那么此时我们需要将版本库⾥的版本回退到我们想要追加的那⼀版,想要将版本回退到我们想要的哪⼀版有好⼏种⽅法1)第⼀种即是我们从服务器上选取我们需要的版本,直接进⾏挑拣,在服务器的提交管理页⾯上右上⽅⼀般会有⼀个Download按钮,点击会弹出⼀个下拉框,选择其中的cherry-pick,复制命令, 之后在我们版本仓库对应的⽬录下运⾏这个命令,执⾏完后,使⽤git log -1 命令,可以查看到现在版本库⾥最近的⼀版变成了我们刚才挑拣的这版,此时再在⼯作区直接修改代码, 改完之后进⾏git add,再执⾏本git commit --amend命令,之后git push.2)使⽤gitk或其他的图形界⾯化⼯具,在终端输⼊ gitk,回车,会弹出gitk的图形界⾯,在界⾯的左侧部分陈列着版本库中的⼀条条commit-id,此时选中我们需要的那⼀版,右键点击之后会弹出⼀个 选择菜单,如果是在master 分⽀上,那么其中会有⼀项是 Reset master branch to here,点击这项,会弹出⼀个名为confirm reset的确认box,选择reset type 中的hard项,再点击OK, 关闭gitk图形界⾯,回到终端,运⾏git log -1命令,发现现在版本库⾥最近的⼀次提交已经是我们希望的那⼀版了,此时再在⼯作区直接修改代码,改完之后进⾏git add, 再执⾏本git commit --amend命令,之后git push.3)如果我们知道我们需要的版本与现在最近的版本中间隔着 n 个提交,那么我们可以直接使⽤git reset --hard HEAD~n命令,关于git reset 命令有详解,此时这个命令执⾏完后, 运⾏git log -1 命令我们会发现现在版本库⾥最近的⼀版就是我们需要的那版,此时再在⼯作区直接修改代码,改完之后进⾏git add,再执⾏本git commit --amend命令,之后git push.4)如果我们不知道我们需要的版本与现在最近的版本中间隔着 n 个提交,那么我们可以使⽤git log来查看版本库中的commit-id,找到我们需要的commit-id后,在终端中执⾏git reset --hard commit-id, 时这个命令执⾏完后,运⾏git log -1 命令我们会发现现在版本库⾥最近的⼀版就是我们需要的那版,此时再在⼯作区直接修改代码,改完之后进⾏git add,再执⾏本git commit --amend命令,之后git push. 1.4 git commit --help查看帮助,还有许多参数有其他效果,⼀般来说了解上述三种即可满⾜我们⼯作中的⽇常开发了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Git常用操作命令收集:
1) 远程仓库相关命令
检出仓库:$ git clone git:///jquery/jquery.git
查看远程仓库:$ git remote -v
添加远程仓库:$ git remote add [name] [url]
删除远程仓库:$ git remote rm [name]
修改远程仓库:$ git remote set-url --push [name] [newUrl]
拉取远程仓库:$ git pull [remoteName] [localBranchName]
推送远程仓库:$ git push [remoteName] [localBranchName]
2)分支(branch)操作相关命令
查看本地分支:$ git branch
查看远程分支:$ git branch -r
创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支切换分支:$ git checkout [name]
创建新分支并立即切换到新分支:$ git checkout -b [name]
删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。
如果想强制删除一个分支,可以使用-D选项
合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
创建远程分支(本地分支push到远程):$ git push origin [name]
删除远程分支:$ git push origin :heads/[name]
3)版本(tag)操作相关命令
查看版本:$ git tag
创建版本:$ git tag [name]
删除版本:$ git tag -d [name]
查看远程版本:$ git tag -r
创建远程版本(本地版本push到远程):$ git push origin [name]
删除远程版本:$ git push origin :refs/tags/[name]
4) 子模块(submodule)相关操作命令
添加子模块:$ git submodule add [url] [path]
如:$ git submodule add git:///soberh/ui-libs.git
src/main/webapp/ui-libs
初始化子模块:$ git submodule init ----只在首次检出仓库时运行一次就行
更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下
删除子模块:(分4步走哦)
1) $ git rm --cached [path]
2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
3) 编辑“.git/config”文件,将子模块的相关配置节点删除掉
4) 手动删除子模块残留的目录
5)忽略一些文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素
占一行即可,如
target
bin *.db。