git常用命令解说

git常用命令解说
git常用命令解说

1. Git概念

1.1. Git库中由三部分组成

Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制。.git目录位于工作目录内。

1)工作目录:用户本地的目录;

2) Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Git 称该区域为索引。

3)仓库:将索引通过commit命令提交至仓库中,每一次提交都意味着版本在进行一次更新。

1.2. 使用Git时的初始化事项

1.2.1. Git初始化配置

1)配置使用git仓库的人员姓名

git config --global https://www.360docs.net/doc/829868430.html, "Your Name Comes Here"

2)配置使用git仓库的人员email

git config --global user.email you@https://www.360docs.net/doc/829868430.html,

1.2.2. Git文档忽略机制

工作目录中有一些文件是不希望接受Git 管理的,譬如程序编译时生成的中间文件等等。Git 提供了文档忽略机制,可以将工作目录中不希望接受Git 管理的文档信息写到同一目录下的.gitignore 文件中。

例如:工作目录下有个zh目录,如果不想把它加入到Git管理中,则执行:

echo “zh” > .gitignore

git add .

有关gitignore 文件的诸多细节知识可阅读其使用手册:man gitignore

1.3. Git与Repo的比较

Git操作一般对应一个仓库,而Repo操作一般对应一个项目,即一个项目会由若干仓库组成。

例如,在操作整个Recket项目时使用Repo,而操作其中的某个仓库时使用Git。在包含隐藏目录.git的目录下执行git操作。

2. Git help

Git help 获取git基本命令

(如果要知道某个特定命令的使用方法,例如:使用Git help clone,来获取git clone 的使用方法)

3. Git本地操作基本命令

3.1. Git init

或者使用git init-db。

创建一个空的Git库。在当前目录中产生一个.git 的子目录。以后,所有的文件变化信息

都会保存到这个目录下,而不像CVS那样,会在每个目录和子目录下都创建一个CVS目录。在.git目录下有一个config文件,可以修改其中的配置信息。

3.2. Git add

将当前工作目录中更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步。

可以递归添加,即如果后面跟的是一个目录作为参数,则会递归添加整个目录中的所有子目录和文件。例如:

git add dir1 (添加dir1这个目录,目录下的所有文件都被加入)

Git add f1 f2 (添加f1,f2文件)

git add . ( 添加当前目录下的所有文件和子目录 )

3.3. Git rm

从当前的工作目录中和索引中删除文件。

可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件。例如:

git rm –r * (进入某个目录中,执行此语句,会删除该目录下的所有文件和子目录)

git rm f1 (删除文件f1,包含本地目录和index中的此文件记录)

git rm --ached f1 (删除文件f1,不会删除本地目录文件,只删除index中的文件记录;将已经git add的文件remove到cache中,这样commit的时候不会提交这个文件, 适用于一下子添加了很多文件, 却又想排除其中个别几个文件的情况.)

3.4. Git commit

提交当前工作目录的修改内容。

直接调用git commit命令,会提示填写注释。通过如下方式在命令行就填写提交注释:git

commit -m "Initial commit of gittutor reposistory"。注意,和CVS不同,git的提交注释必须不能为空,否则就会提交失败。

git commit还有一个 -a的参数,可以将那些没有通过git add标识的变化一并强行提交,但是不建议使用这种方式。

每一次提交,git就会为全局代码建立一个唯一的commit标识代码,用户可以通过git reset 命令恢复到任意一次提交时的代码。

git commit –-amend –m “message”(在一个commit id上不断修改提交的内容)

3.5. Git status

查看版本库的状态。可以得知哪些文件发生了变化,哪些文件还没有添加到git库中等等。建议每次commit前都要通过该命令确认库状态。

最常见的误操作是,修改了一个文件,没有调用git add通知git库该文件已经发生了变化就直接调用commit操作,从而导致该文件并没有真正的提交。这时如果开发者以为已经提交了该文件,就继续修改甚至删除这个文件,那么修改的内容就没有通过版本管理起来。如果每次在提交前,使用git status查看一下,就可以发现这种错误。因此,如果调用了git status命令,一定要格外注意那些提示为“Changed but not updated:”的文件。这些文件都是与上次commit相比发生了变化,但是却没有通过git add标识的文件。

3.6. Git log

查看历史日志,包含每次的版本变化。每次版本变化对应一个commit id。

Git log -1

-1的意思是只显示一个commit,如果想显示5个,就-5。不指定的话,git log会从该commit 一直往后显示。

Git log --stat –summary (显示每次版本的详细变化)

在项目日志信息中,每条日志的首行(就是那一串字符)为版本更新提交所进行的命名,我们可以将该命名理解为项目版本号。项目版本号应该是唯一的,默认由 Git 自动生成,用以标示项目的某一次更新。如果我们将项目版本号用作git-show 命令的参数,即可查看该次项目版本的更新细节。例如:

1) Git log

2)Git show

实际上,上述命令并非是真正的进行版本号自定义,只是制造了一个tag对象而已,这在进行项目版本对外发布时比较有用。

3.7. Git merge

把服务器上下载下来的代码和本地代码合并。或者进行分支合并。

例如:当前在master分支上,若想将分支dev上的合并到master上,则git merge dev 注意:git merge nov/eclair_eocket (是将服务器git库的eclair_eocket分支合并到本地分支上)

git rebase nov/eclair_eocket (是将服务器git库的eclair_eocket分支映射到本地的一个临时分支上,然后将本地分支上的变化合并到这个临时分支,然后再用这个临时分支初始化本地分支)

3.8. Git diff

把本地的代码和index中的代码进行比较,或者是把index中的代码和本地仓库中的代码进行比较。

1) Git diff

比较工作目录和Index中的代码。

2) Git diff - - cached

比较index和本地仓库中的代码。

3.9. Git checkout

3.9.1. 切换到分支

1) 创建一个新分支,并切换到该分支上

Git checkout –b 新分支名

2)切换到某个已经建立的本地分支local_branch

Git checkout local_branch

(使用cat .git/HEAD后,显示refs:refs/heads/ local_branch)

3) 切换到服务器上的某个分支remote_branch

Git checkout remote_branch

(远程分支remote_branch可以通过 git branch –r 列出)

4) 切换到某个commit id

Git checkout commit_id

(使用cat .git/HEAD后,显示commit_id)

5) 切换到某个tag

Git checkout tag

(使用cat .git/HEAD后,显示tag)

注意:除了1)和2)外,其余三种都只是切换到了一个临时的( no branch )状态(this head is detached),这时用 git branch 可以看到处于(no branch)上, cat .git/HEAD

看到指向相应的commit id。这个(no branch)只是临时存在的,并不是一个真正建立的branch。如果此时执行2),则这个(no branch)就自动消失了;如果执行1),则创建新分支 new branch,并把这个(no branch)挂到这个新分支上,此时

cat .git/refs/heads/new_branch 可以看到已经指向了刚才那个commit id。

3.9.2. 用已有分支初始化新分支

执行下面的命令,在切换到某个已经建立的local branch或者某个remote branch或者某个commit id 或者某个tag的同时,创建新分支new_branch,并且挂到这个新分支上。1)切换到某个已经建立的本地分支local_branch,并且使用此分支初始化一个新分支new_branch。

git checkout –b new_branch local_branch

2) 切换到某个远程分支remote_branch,并且用此分支初始化一个新分支new_branch。Git checkout –b new_branch remote_branch

3) 切换到某个commit id,并建立新分支new_branch

Git checkout –b new_branch commit_id

4) 切换到某个tag,并建立新分支new_branch

Git checkout –b new_branch tag

3.9.3. 还原代码

例如“git checkout app/model/user.rb”就会将user.rb文件从上一个已提交的版本中更新回来,未提交的工作目录中的内容全部会被覆盖。

3.10. Git-ls-files

查看当前的git库中有那些文件。

3.11. Git mv

重命名一个文件、目录或者链接。

例如:Git mv helloworld.c helloworld1.c (把文件helloworld.c 重命名为

helloworld1.c)

3.12. Git branch

3.12.1. 总述

在 git 版本库中创建分支的成本几乎为零,所以,不必吝啬多创建几个分支。当第一次执行git init时,系统就会创建一个名为“master”的分支。而其它分支则通过手工创建。下面列举一些常见的分支策略:

创建一个属于自己的个人工作分支,以避免对主分支 master 造成太多的干扰,也方便与他人交流协作;

当进行高风险的工作时,创建一个试验性的分支;

合并别人的工作的时候,最好是创建一个临时的分支用来合并,合并完成后再“fetch”到自己的分支。

对分支进行增、删、查等操作。

注意:分支信息一般在.git/refs/目录下,其中heads目录下为本地分支,remotes为对应服务器上的分支,tags为标签。

3.12.2. 查看分支

git branch 列出本地git库中的所有分支。在列出的分支中,若分支名前有*,则表示此分支为当前分支。

git branch –r 列出服务器git库的所有分支。

(可以继续使用命令“ git checkout -b 本地分支名服务器分支名”来获取服务器上某个分支的代码文件)。

3.12.3. 查看当前在哪个分支上

cat .git/HEAD

3.12.

4. 创建一个分支

1) git branch 分支名

虽然创建了分支,但是不会将当前工作分支切换到新创建的分支上,因此,还需要命令“git checkout 分支名”来切换,

2) git checout –b 分支名

不但创建了分支,还将当前工作分支切换到了该分支上。

3.12.5. 切换到某个分支:git checkout 分支名

切换到主分支:git checkout master

3.12.6. 删除分支

git branch –D 分支名

注意:删除后,发生在该分支的所有变化都无法恢复。强制删除此分支。

3.12.7. 比较两个分支上的文件的区别

git diff master 分支名(比较主分支和另一个分支的区别)

3.12.8. 查看分支历史

git-show-branch (查看当前分支的提交注释及信息)

git-show-branch -all(查看所有分支的提交注释及信息)例如:

* [dev] d2

! [master] m2

--

* [dev] d2

* [dev^] d1

* [dev~2] d0

*+ [master] m2

在上述例子中,“--”之上的两行表示有两个分支dev和master,且dev分支上最后一次提交的日志是“d2”,master分支上最后一次提交的日志是“m2”。“--”之下的几行表示了分支演化的历史,其中 dev表示发生在dev分支上的最后一次提交,dev^表示发生在dev分支上的倒数第二次提交。dev~2表示发生在dev分支上的倒数第三次提交。

3.12.9. 查看当前分支的操作记录

git whatchanged

3.12.10. 合并分支

法一:

git merge “注释”合并的目标分支合并的来源分支

如果合并有冲突,git会有提示。

例如:git checkout master (切换到master分支)

git merge HEAD dev~2 (合并master分支和dev~2分支)或者:git merge master dev~2 法二:

git pull 合并的目标分支合并的来源分支

例如: git checkout master (切换到master分支)

git pull . dev~2(合并当前分支和dev~2分支)

3.13. Git rebase

一般在将服务器最新内容合并到本地时使用,例如:在版本C时从服务器上获取内容到本地,修改了本地内容,此时想把本地修改的内容提交到服务器上;但发现服务器上的版本已经变

为G了,此时就需要先执行Git rebase,将服务器上的最新版本合并到本地。例如:

用下面两幅图解释会比较清楚一些,rebase命令执行后,实际上是将分支点从C移到了G,这样分支也就具有了从C到G的功能。

3.1

4. Git reset

库的逆转与恢复除了用来进行一些废弃的研发代码的重置外,还有一个重要的作用。比如我们从远程clone了一个代码库,在本地开发后,准备提交回远程。但是本地代码库在开发时,有功能性的commit,也有出于备份目的的commit等等。总之,commit的日志中有大量无用log,我们并不想把这些 log在提交回远程时也提交到库中。因此,就要用到git reset。git reset的概念比较复杂。它的命令形式:git reset [--mixed | --soft | --hard] []

命令的选项:

--mixed 这个是默认的选项。如git reset [--mixed] dev^(dev^的定义可以参见2.6.5)。它的作用仅是重置分支状态到dev1^, 但是却不改变任何工作文件的内容。即,从dev1^到dev1的所有文件变化都保留了,但是dev1^到dev1之间的所有commit日志都被清除了,而且,发生变化的文件内容也没有通过git add标识,如果您要重新commit,还需要对变化的文件做一次git add。这样,commit后,就得到了一份非常干净的提交记录。(回退了index和仓库中的内容)

--soft相当于做了git reset –mixed,后,又对变化的文件做了git add。如果用了该选项,就可以直接commit了。(回退了仓库中的内容)

--hard这个命令就会导致所有信息的回退,包括文件内容。一般只有在重置废弃代码时,才用它。执行后,文件内容也无法恢复回来了。(回退了工作目录、index和仓库中的内容)

例如:

切换到使用的分支上;

git reset HEAD^ 回退第一个记录

git reset HEAD~2 回退第二个记录

如果想把工作目录下的文件也回退,则使用git reset - - hard HEAD^ 回退第一个记录git reset - - hard HEAD~2 回退第二个记录

还可以使用如下方法:

将当前的工作目录完全回滚到指定的版本号,假设如下图,我们有A-G五次提交的版本,其中C的版本号是 bbaf6fb5060b4875b18ff9ff637ce118256d6f20,我们执行了'git reset bbaf6fb5060b4875b18ff9ff637ce118256d6f20'那么结果就只剩下了A-C三个提交的版本

3.15. Git revert

还原某次对版本的修改,例如:git revert commit_id (其中commit_id为commit代码时

生成的一个唯一表示的字符串)

例如:(3.6中)git revert dfb02e6e4f2f7b573337763e5c0013802e392818 (执行此操作,则还原上一次commit的操作)

3.16. Git config

利用这个命令可以新增、更改Git的各种设置,例如“git config branch.master.remote origin”就将master的远程版本库设置为别名叫做origin版本库。

3.17. Git show

显示对象的不同类型。

3.18. Git tag

创建、列出、删除或者验证一个标签对象(使用GPG签名的)。

可以将某个具体的版本打上一个标签,这样就不需要记忆复杂的版本号哈希值字符串了,例如你可以使用“git tag revert_version bbaf6fb5060b4875b18ff9ff637ce118256d6f20”来标记这个被你还原的版本,那么以后你想查看该版本时,就可以使用 revert_version标签名,而不是哈希值了。

4. Git服务器操作命令(与服务器交互)

4.1. Git clone

取出服务器的仓库的代码到本地建立的目录中(与服务器交互)

通过git clone获取远端git库后,.git/config中的开发者信息不会被一起clone过来。仍然需要为本地库的.git/config文件添加开发者信息。此外,开发者还需要自己添加 . gitignore文件。

通过git clone获取的远端git库,只包含了远端git库的当前工作分支。如果想获取其它分支信息,需要使用“git branch –r”来查看,如果需要将远程的其它分支代码也获

取过来,可以使用命令“ git checkout -b 本地分支名远程分支名”,其中,远程分支名为“git branch –r”所列出的分支名,一般是诸如“origin/分支名”的样子。如果本地分支名已经存在,则不需要“-b”参数。

例如:

4.2. Git pull

从服务器的仓库中获取代码,和本地代码合并。(与服务器交互,从服务器上下载最新代码,等同于: Git fetch + Git merge)

从其它的版本库(既可以是远程的也可以是本地的)将代码更新到本地,例如:“git pull origin master ”就是将origin这个版本库的代码更新到本地的master主分支。

git pull可以从任意一个git库获取某个分支的内容。用法如下:

git pull username@ipaddr:远端repository名远端分支名本地分支名。这条命令将从远端git库的远端分支名获取到本地git库的一个本地分支中。其中,如果不写本地分支名,则默认pull到本地当前分支。

需要注意的是,git pull也可以用来合并分支。和git merge的作用相同。因此,如果你的本地分支已经有内容,则git pull会合并这些文件,如果有冲突会报警。

例如:

4.3. Git push

将本地commit的代码更新到远程版本库中,例如“git push origin”就会将本地的代码更新到名为orgin的远程版本库中。

git push和git pull正好想反,是将本地某个分支的内容提交到远端某个分支上。用法:git push username@ipaddr:远端repository名本地分支名远端分支名。这条命令将本地git库的一个本地分支push到远端git库的远端分支名中。

需要格外注意的是,git push好像不会自动合并文件。因此,如果git push时,发生了冲突,就会被后push的文件内容强行覆盖,而且没有什么提示。这在合作开发时是很危险的事情。

例如:

4.4. Git fetch

从服务器的仓库中下载代码。(与服务器交互,从服务器上下载最新代码)

相当于从远程获取最新版本到本地,不会自动merge,比Git pull更安全些。

使用此方法来获取服务器上的更新。

例如:如果使用git checkout nov/eclair_rocket (nov/eclair_rocket为服务器上的分支名),则是获取上次使用git fetch命令时从服务器上下载的代码;如果先使用 git fetch ,再使用git checkout nov/eclair_rocket,则是先从服务器上获取最新的更新信息,然后

从服务器上下载最新的代码。

Git使用说明

Git使用说明 一、Git 是什么 Git 是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问。所谓版本控制系统,从狭义上来说,它是软件项目开发过程中用于储存我们所写的代码所有修订版本的软件,但事实上我们可以将任何对项目有帮助的文档交付版本控制系统进行管理。 理论上,Git 可以保存任何文档,但是最善于保存文本文档,因为它本来就是为解决软件源代码(也是一种文本文档)版本管理问题而开发的,提供了许多有助于文本分析的工具。对于非文本文档,Git 只是简单地为其进行备份并实施版本管理。 二、git管理个人文档 比如文档在/home/gitwork/doc目录下,首先切换到该目录下. 2.1 建立仓库 命令:git init 则会显示Initialized empty Git repository in $PROJECT/.git/,这是在该目录下建立了一个.git的隐藏目录,这就是所谓的仓库,不过现在它里面没内容。该目录现在不在是普通的目录,称之为工作树。 2.2 自我介绍 命令如下:

Git config –-global https://www.360docs.net/doc/829868430.html, “你的名字” Git config –-global user.email “你的电子邮件” 2.3 生成快照 命令:git add 文件名 文件名可以是多个,这一步只是生成了该要提交文档的快照,该快照被存放在一个临时的存储区域,git称之为索引。 2.4 内容提交 命令:git commit–m “自己输入的版本更新说明” 使用git commit命令可将索引提交至仓库,每次提交意味着版本的一次更新。 2.5 内容忽略 假如你修改了多个文档,又希望其中的一个不被提交,如你在工作树中存在A.txt、b、c.tex、d等文件和子目录,但子目录d不需要提交,则可用git的文档忽略机制,可以将工作树中你不希望接受Git 管理的文档信息写到同一目录下的 .gitignore 文件中。 命令:cd 工作树目录 Echo “d”> .gitignore Git add . Git commit 2.6 查看版本历史 在工作树中,使用 git-log 命令可以查看当前项目的日志,也就是你在使用git-commit 向仓库提交新版本时所属的版本更新信

Git命令学习Git使用习惯git-cheatsheet-中文注释

presented by TOWER ? Version control with Git - made easy GIT CHEAT SHEET CREATE Clone an existing repository $ git clone ssh://user@https://www.360docs.net/doc/829868430.html,/repo.git Create a new local repository $ git init LOCAL CHANGES Changed files in your working directory $ git status Changes to tracked files $ git diff Add all current changes to the next commit $ git add . Add some changes in to the next commit $ git add -p Commit all local changes in tracked files $ git commit -a Commit previously staged changes $ git commit Change the last commit Don‘t amend published commits! $ git commit --amend COMMIT HISTORY Show all commits, starting with newest $ git log Show changes over time for a specific file $ git log -p Who changed what and when in $ git blame BRANCHES & TAGS List all existing branches $ git branch -av Switch HEAD branch $ git checkout Create a new branch based on your current HEAD $ git branch Create a new tracking branch based on a remote branch $ git checkout --track Delete a local branch $ git branch -d Mark the current commit with a tag $ git tag UPDATE & PUBLISH List all currently configured remotes $ git remote -v Show information about a remote $ git remote show Add new remote repository, named $ git remote add Download all changes from , b ut don‘t integrate into HEAD $ git fetch Download changes and directly merge/integrate i nto HEAD $ git pull Publish local changes on a remote $ git push Delete a branch on the remote $ git branch -dr Publish your tag s $ git push --tags MERGE & REBASE Merge into your current HEAD $ git merge Rebase your current HEAD onto Don‘t rebase published commits! $ git rebase Abort a rebase $ git rebase --abort Continue a rebase after resolving conflicts $ git rebase --continue Use your configured merge tool to solve conflicts $ git mergetool Use your editor to manually solve conflicts and (after resolving) mark file as resolved $ git add $ git rm UNDO Discard all local changes in your working directory $ git reset --hard HEAD Discard local changes in a specific file $ git checkout HEAD Revert a commit (by producing a new commit with contrary changes) $ git revert Reset your HEAD pointer to a previous commit …and discard all changes since then $ git reset --hard …and preserve all changes as unstaged changes $ git reset …and preserve uncommitted local changes $ git reset --keep 对于某个文件的修改:时间、地点、人物 某个文件的最近一次修改stage所有修改,注意点号 其实可用reflog找到 并恢复该版本。 把和上个commit之间的修改放回工作区。 跳过git add,不建议 修补,而不是revert 常用 git commit --amend --no-edit

Git 常用命令速查

一、Git 常用命令速查 git push origin :分支名删除远程库分支 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git commit -am "init" 提交并且加注释 git remote add origin git@192.168.1.119:ndshow git push origin master 将文件给推到服务器上 git remote show origin 显示远程库origin里的资源 git push origin master:develop git push origin master:hb-dev 将本地库与服务器上的库进行关联 git checkout --track origin/dev 切换到远程dev分支 git branch -D master develop 删除本地库develop git checkout -b dev 建立一个新的本地分支dev git merge origin/dev 将分支dev与当前分支进行合并 git checkout dev 切换到本地dev分支 git remote show 查看远程库 git add . 目录下所有的文件 git rm 文件名(包括路径) 从git中删除指定文件 git clone git://https://www.360docs.net/doc/829868430.html,/schacon/grit.git 从服务器上将代码给拉下来 git config --list 看所有用户 git ls-files 看已经被提交的 git rm [file name] 删除一个文件 git commit -a 提交当前repos的所有的改变 git add [file name] 添加一个文件到git index git commit -v 当你用-v参数的时候可以看commit的差异 git commit -m "This is the message describing the commit" 添加commit信息git commit -a -a是代表add,把所有的change加到git index里然后再commit git commit -a -v 一般提交命令 git log 看你commit的日志 git diff 查看尚未暂存的更新 git rm a.a 移除文件(从暂存区和工作区中删除) git rm --cached a.a 移除文件(只从暂存区中删除) git commit -m "remove" 移除文件(从Git中删除) git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除) git diff --cached 或$ git diff --staged 查看尚未提交的更新 git stash push 将文件给push到一个临时空间中 git stash pop 将文件从临时空间pop下来 --------------------------------------------------------- git remote add origin git@https://www.360docs.net/doc/829868430.html,:username/Hello-World.git

Git使用教程

Git使用教程 原文出处:涂根华的博客 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。 Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是 一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。 三:在windows上如何安装Git? msysgit是 windows版的Git,如下: 需要从网上下载一个,然后进行默认安装即可。安装完成后,在开始菜单里面找 到“Git –> Git Bash”,如下: 会弹出一个类似的命令窗口的东西,就说明Git安装成功。如下:

安装完成后,还需要最后一步设置,在命令行输入如下: 因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。 注意:git config –global 参数,有了这个参数,表示你这台机器上所有的Git 仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。四:如何操作? 一:创建版本库。

Git 19个常用的命令

Git 19个常用的命令 Git 19个常用的命令 1. 超实用 Alias 1 2 3 4 5 6 7 8 alias g="git" alias gb="git branch" alias gco="git checkout" alias gcmsg="git commit -m" alias gamend="git commit --amend -C HEAD" alias gst="git status" alias log="git log --oneline --graph --decorate --color=always" alias logg="git log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)— %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative" 2. 取回远端 master 与本地 master 分支合并 1 2 3 4 5 6 7 gco master g fetch --all 或者 g fetch origin master g reset --hard origin/master(本地没有修改,所以完全覆盖也没关系) 或者 g rebase origin/master (本地有修改还没push ) 3. 推送分支到远端 假设现在所在的分支是import ,指定推送到远端分支liujin-import 1 g push origin import:liujin-import 假如远端的 liujin-import 分支已经不需要,可以直接覆盖掉 1 g push -f origin import:liujin-import

git命令详解

一、Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git commit -am "init" 提交并且加注释 git remote add origin git@192.168.1.119:ndshow git push origin master将文件给推到服务器上 git remote show origin 显示远程库origin里的资源 git push origin master:develop git push origin master:hb-dev 将本地库与服务器上的库进行关联 git checkout --track origin/dev 切换到远程dev分支 git branch -D master develop 删除本地库develop git checkout -b dev 建立一个新的本地分支dev git merge origin/dev 将分支dev与当前分支进行合并 git checkout dev 切换到本地dev分支 git remote show 查看远程库 git add . git rm 文件名(包括路径) 从git中删除指定文件 git clone git://https://www.360docs.net/doc/829868430.html,/schacon/grit.git 从服务器上将代码给拉下来 git config --list 看所有用户 git ls-files 看已经被提交的 git rm [file name] 删除一个文件 git commit -a 提交当前repos的所有的改变 git add [file name] 添加一个文件到git index git commit -v 当你用-v参数的时候可以看commit的差异 git commit -m "This is the message describing the commit" 添加commit信息git commit -a -a是代表add,把所有的change加到git index里然后再commit git commit -a -v 一般提交命令 git log 看你commit的日志 git diff 查看尚未暂存的更新 git rm a.a 移除文件(从暂存区和工作区中删除) git rm --cached a.a 移除文件(只从暂存区中删除) git commit -m "remove" 移除文件(从Git中删除)

Git源代码管理规范

Git源代码管理规范 一、分支管理 使用git进行源代码管理,一般将某个项目的所有分支分为以下几条主线: 1.Master 顾名思义,既然名字叫Master,那么该分支就是主分支的意思。master分支永远是production-ready的状态,即稳定可产品化发布的状态。 2.Develop 这个分支就是我们平常开发的一个主要分支了,不管是要做新的feature还是需要做bug fix,都是从这个分支分出来做。在这个分支下主要负责记录开发状态下相对稳定的版本,即完成了某个feature或者修复了某个bug后的开发稳定版本。 3.Feature branches 这是由许多分别负责不同feature开发的分支组成的一个分支系列。new feature主要就在这个分支系列下进行开发。当功能点开发测试完毕之后,就会合并到develop 分支去。 4.release branches 这个分支系列从develop分支出来,也就是预发分支。在预发状态下,我们往往会进行预发环境下的测试,如果出现缺陷,那么就在该release分支下进行修复,修复完毕测试通过后,即分别并入master分支后develop分支,随后master分支做正常发布。

5.Hotfix branches 这个分支系列也就是我们常说的紧急线上修复,当线上出现bug且特别紧急的时候,就可以从master拉出分支到这里进行修复,修复完成后分别并入master和develop 分支。 下面这张图将完整展示这一个流程

二、工作原理 Git的工作方式: 也就是说,每次提交版本变动的时候,git会保存一个快照(snapshot)。如果文件没有被更改,git也不会再次保存,而是提供一个到原来文件的链接。这样一来,git更像是一个小型的文件系统。此外,git的所有操作都可以是本地的,仅仅在将新版本的内容上传到服务器上时才需要连接网络。

gerrit git 常用操作

gerrit/git常用操作 1、代码下载方法 a. 下载整个工程代码: repoinit …… repo sync b. 下载部分模块代码 repoinit …… repo sync + projectPath 2、通过repo 提交代码 a.下载所需修改模块的代码 mkdir Test cd Test repoinit …… repo sync projectName b. 建立新分支:repo start branchName . / repo start branchNameprojectName c. 修改代码 d. git add . (提交所有修改到git缓冲区) / git add + FileName(只提交指定文件) e. git commit -s 格式要求: module: submodule: Message Title Blablabla Message Content Blablablablablablablablabla Ticket: APOLLO-20472 f. repo upload . / repo upload projectName g. 评审代码并submit。 3、直接通过gerrit pick Patch a.在gerrit上打开需要pick的patch b.点击“Cherry Pick To”按钮,在弹出的对话框中输入需要pick到的branch. 注意:如果无法直接pick过来,网页会直接报错,此时则需要按下面的步骤4手动pick,并解决冲突。 c.成功pick之后,会生成一个新的gerrit提交,并自动在Reviewer中加入了原Author,merge 之前让原Author确认。 d.评审代码并submit。 4、Pick冲突解决: 如果在gerrit上直接pick产生冲突,需要手动pick,并解决冲突:

git常用命令文档

Git常用命令文档 master分支:主干、正式环境 develop分支: 开发环境 test分支:测试环境 一、创建 复制一个已创建的仓库: $ git clone ssh://user@https://www.360docs.net/doc/829868430.html,/repo.git 创建一个新的本地仓库: $ git init 二、本地修改 显示工作路径下已修改的文件: $ git status 显示与上次提交版本文件的不同: $ git diff 把当前所有修改添加到下次提交中: $ git add 提交本地的所有修改: $ git commit -a 提交之前已标记的变化: $ git commit 附加消息提交: $ git commit -m 'message here' 三、提交历史 从最新提交开始,显示所有的提交记录(显示hash,作者信息,提交的标题和时间): $ git log

四、分支与标签 列出所有的分支: $ git branch 切换分支: $ git checkout 创建并切换到新分支: $ git checkout -b 基于当前分支创建新分支: $ git branch 删除本地分支: $ git branch -d 更新与发布 将远程端版本合并到本地版本中: $ git pull origin master 将本地版本发布到远程端: $ git push origin : 删除远程端分支: git push origin --delete 五、合并与重置 将分支合并到当前HEAD中: $ git merge 六、撤销 放弃工作目录下的所有修改: $ git reset --hard HEAD 移除缓存区的所有文件(i.e. 撤销上次git add): $ git reset HEAD 将HEAD重置到指定的版本,并抛弃该版本之后的所有修改: 1. $ git reflog 2. $ git reset --hard

Git-GitLab讲解

Git 简介及 GitLab 使用 一、Git 简介
Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变 化,而大多数其他系统则只关心文件内容的具体差异。 Git 并不保存这些前后变化的差异数据。 实际上, Git 更像是把变化的文件作快照后, 记录在一个微型的文件系统中。每次提交更新时, 它会纵览一遍所有文件的指纹信息并对 文件作一快照, 然后保存一个指向这次快照的索引。 为提高性能, 若文件没有变化, Git 不 会再次保存,而只对上次保存的快照作一链接。 文件的三种状态 对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改 (modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中 了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下 次提交时要保存的清单中。 由此我们看到 Git 管理项目时,文件流转的三个工作区域:Git 的工作目录,暂存 区域,以及本地仓库。
基本的 Git 工作流程如下: 1. 在工作目录中修改某些文件。 2. 对修改后的文件进行快照,然后保存到暂存区域。 3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。 所以,我们可以从文件所处的位置来判断状态:如果是 Git 目录中保存着的特定版 本文件,就属于已提交状态;如果作了修改并已放入暂存区域,就属于已暂存状态;如果 自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。 工作目录下面的所有文件都不外乎这两种状态: 已跟踪或未跟踪。已跟踪的文件是指 本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们 的状态可能是未更新,已修改或者已放入暂存区。而所有其他文件都属于未跟踪文件。它

git基本操作命令

GIT日常操作命令 1、git三种状态 已提交(committed)已修改(modified)已暂存(staged) 2、获取项目的git仓库 git init//从当前目录初始化 git clone gitosis@192.168.2.4:soul/soul //从现有仓库克隆 3、配置git仓库相关信息 git config https://www.360docs.net/doc/829868430.html, "yayun.tian" git config user.email yayun.tian@https://www.360docs.net/doc/829868430.html, ….... 4、检查当前文件状态 git status 5、跟踪新文件 git add gir add --all//一次性跟踪当前目录全部文件注:可以创建一个名为.gitignore 的文件,列出要忽略的文件模式,例如: # – 此为注释将被git 忽略 *.a # 忽略所有.a 结尾的文件 !lib.a # 但lib.a 除外 /TODO # 仅仅忽略项目根目录下的TODO 文件,不包括subdir/TODO build/ # 忽略build/ 目录下的所有文件 doc/*.txt # 会忽略doc/notes.txt 但不包括doc/server/arch.txt 6、移除文件 git rm //移除暂存区的内容而且工作目录也连带删除注:如果仅仅想删除暂存区可以加上cached选项 — 7、提交 先用git diff --color 查看确认修改 git commit -a -m“comment”//comment代表此次修改的注释 git commit --amend //修改最后一次提交 如果忘记暂存某些文件就提交了,可以暂存后使用amend再次提交

MARC培训手册

FEM\MARC培训手册.doc MARC 培训手册 目录 1. MARC程序介绍 1.1 MARC程序结构特点 1.2 MARC安装后的有关目录 1.3 MARC程序手册的组成 1.4 MARC的文件系统 1.5 MARC软件运行 1.6 运行MARC所需的Job文件的数据构成2.弹塑性分析 2.1理论概要 2.2选项的使用方法 2.3应力分析的控制 2.3.1 增量步迭代算法 2.3.2 迭代求解控制(CONTROL选项) 3.热传导分析 3.1理论概要 3.2自动步长控制 3.3选项的使用方法 4.热应力分析 4.1理论概要 4.2自动步长控制 4.3选项的使用方法 5.实例分析 5.1弹塑性分析 5.2热传导分析 热传导分析的输入数据与结果 5.3热应力分析 热应力分析的输入数据与结果 附录 Ⅰ有限单元法的基本步骤 Ⅱ单元的使用方法及数值积分 Ⅲ求解器 Ⅳ内存分配和空间需求 Ⅴ重起动与后处理 Ⅵ用TYING实现节点自由度间的线性约束 ⅦSingularity Ratio(奇异比)

1.MARC程序介绍 MARC Analysis Research Corporation(简称MARC)始创于1967年,总部设在美国加州的Palo Alto,是全球第一家非线性有限元软件公司。创始人是美国著名布朗大学应用力学系教授,有限元分析的先驱Pedro Marcel。MARC 公司在创立之初便独具慧眼,瞄准非线性分析这一未来分析发展的必然,致力于非线性有限元技术的研究、非线性有限元软件的开发、销售和售后服务。对于学术研究机构,MARC公司的一贯宗旨是提供高水准的CAE 分析软件及其超强灵活的二次开发环境,支持大学和研究机构完成前沿课题研究。对于广阔的工业领域,MARC软件提供先进的虚拟产品加工过程和运行过程的仿真功能,帮助市场决策者和工程设计人员进行产品优化和设计,解决从简单到复杂的工程应用问题。经过三十余年的不懈努力,MARC 软件得到学术界和工业界的大力推崇和广泛应用,建立了它在全球非线性有限元软件行业的领导者地位。 MARC公司的主要产品之一是通用的有限元分析软件MARC/MENTA。包括前后处理界面MENTAT和求解器MARC。可从下图了解MARC与MNETAT之间的数据传输关系: MARC与MENTAT之间可分可合。MENTAT可以自动生成MARC分析计算所需的模型数据文件(.dat)。MARC分析后所生成的结果文件即为后处理文件(.t19或.t16),可由M ENTAT读入后进行数据结果的图形显示。 本培训资料主要是从求解器分析的角度,介绍MARC的基本使用方法。 1.1 MARC程序结构特点 MARC是基于位移法的有限元程序,在非线性方面具有强大的功能。程序按模块化编程,工作空间可根据计算机内存大小自动进行调整。用户如果对精度要求较高,可选用双精度进行运算。当单元数、节点数太多,内存不能满足需要时,程序能够自动利用硬盘空间进行分析。在分析过程中,利用网格自适应和重划分技术,能够变更单元的划分和节点数目。MARC对于非线性问题采用增量解法,在各增量步内对非线性代数方程组进行迭代以满足收敛判定条件。根据具体分析的问题可采用不同的分析方法,如对于弹塑性分析和大位移分析可采用切线刚度法,对于蠕变分析或热应力分析可采用初应变法。 单元刚度矩阵采用数值积分法生成。连续体单元及梁、板、壳单元的面内区域采用高斯积分法,而梁、板、壳单元厚度方向则采用任意奇数个点的Simpson积分法。应变-位移函数根据高斯点来评价。程序计算、存贮单元所有积分点或单元中心点的应力、应变、温度等。总刚矩阵,总质量矩阵等采用轮廓或稀疏存贮法存贮。 输入数据可借助于Mentat界面生成,由用户填卡也可生成。输入数据文件由四部分组成,其中分析功能的指示由参数选项组确定,分析模型的内容由模型定义选项组确定,增量步数据由历程定义选项组确定,图形输出由绘图定义选项组确定。 MARC程序拥有许多对用户开放的子程序即用户子程序,用户可以根据各自需要用FORT RAN语言编制用户子程序,实现对输入数据的修改、材料本构关系的定义、载荷条件、边界条件、约束条件的变更,甚至扩展MARC程序的功能。 MARC程序拥有以下4个库 单元库λ 功能库λ 分析库λ 材料库λ 用MARC软件分析的每一个实际问题,都采用了这四种库的一种以上的元素。用户根据各种具体的结构分析进行适当的选择,下面简单介绍一下这四个库。

git常用命令集详解

git使用记录 1.生成密匙: ssh-keygen-t rsa几次回车,在.ssh/下的id_rsa.pub即为密匙文件; 2.获取git分支: A.远程获取:(路径须绝对路径) git clone git@192.168.1.50:/home/git/repositories/A20-Android4_2.git. (注意在最后加个点是为了避免clone时在当前目录下新建一个git目录) B.本地获取:(路径为相对路径即可) git clone git@192.168.1.50:A20-Android4_2.git. C.查看所获取分支的路径: git remote-v D.切换到某个分支: git checkout$branchname 3.分支的新建与删除: A.新建: git branch$branchname(注意在哪个分支上执行就是基于哪个分支新建) git push origin$branchname(推到服务器仓库) B.删除: git branch-D$branchname(删除本地的分支) git branch-rd origin/$branchname(删除服务器仓库分支) git push origin:$branchname(注意冒号) git remote prune origin(同步远端已删除分支)

4.修改内容查看及提交: A.查看未提交的修改: git status/git status.(查看修改的文件) git diff/git diff.(查看修改的内容) B.查看已提交修改: git log(查看提交信息) git whatchanged(查看每个提交修改的文件) git diff$2$1(查看莫个"提交ID"$1的修改内容) C.还原被修改文件: git checkout-f*/$fileanme D.提交修改: git add*/$filename(将新建文件加入仓库) git commit*/$filename-m"***"/git commit-a-m""(提交修改/提交当前所有修改,删除一个文件也可以) git push origin$branchname E.还原到某个提交ID前: git reset“$提交ID”(注意避免冲突:如果本地有修改过即将还原的文件,可以先备份it,然后git checkout-f$it) git push origin$branchname--force git pull origin$branchname F.提取同一仓库不同分支的修改: git cherry-pick“$提交ID”

git常用命令解释

GIT ANG REPO USAGE 1 git command 1.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 filename 1.3 git mv #修改文件名,或搬移目录 ?git mv filename newfilename 1.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 –stat 1.9 git tag

Git 常用命令合集

====== Git 常用命令合集====== === 1.Git 文档=== Git 中文文档观看地址:https://www.360docs.net/doc/829868430.html,/progit/ === 2.Git 基本指令=== git config --global https://www.360docs.net/doc/829868430.html, //设置全局用户名,不加gloabl为局部 git config --global user.email //设置全局用户邮箱。 git --bare init //初始化git 不生成.git目录,没有工作空间(work tree)。远程仓库初始化时使用。 git init //初始化git,生成.git目录 cat .gitignore //根据规则配置忽略跟踪文件。 git clone url //从url路径克隆项目到本地仓库。 git status //查看工作目录下文件状态。 git add file //将文件或者路径添加到暂存区。 git reset HEAD file //将文件撤出暂存区。 git checkout --file //取消对文件的修改。 git rm file //删除文件-cached 不删除本地文件-f强制删除 git diff //查看修改文件和暂存区文件的差异-staged //暂存文件与上次提交的差异。 git commit -am “txt” //将暂存区的和已修改的文件提交进仓库txt为记录。 git log //查看提交历史可通过gitg查看。 git fetch pd //从远程仓pd库抓取数据到本地git pull。 git push pd master //将本地master分支推向pd远程仓库。git push [远程仓库名][本地分支]:[远程分支] /×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× 如果远程仓库不是bare init的情况下,当本地仓库push远程仓库所在分支时结果 不会相应在work tree上。如果远程仓库不在push的分支上则可以。(远程仓库不 需要work tree) ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××/ === 3.Git remote 指令=== git remote -v //查看当前远程仓库的名字和地址的信息列表。 git remote show wepu //查看远程仓库wepu的信息

Git常用操作命令收集

Git常用操作命令收集: 1) 远程仓库相关命令 检出仓库:$ git clone git://https://www.360docs.net/doc/829868430.html,/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)操作相关命令

相关文档
最新文档