Smart checkout intellij idea что это
Руководство пользователя IntelliJ IDEA: основы работы с системами контроля версий
Что бы получить ваш проект из системы контроля версий, нужно в приветственном окне IDEA выбрать Check out from Version Control или в меню, в верху, VCS и там выюрать Git, Git Hub.
После подключения VCS на проекте вы можете видеть и управлять изменениями. Cmd + 9 для Mac для получения окна Changes.
Если вам нужно сделать какую-то операцию с VCS, то можно вызвать всплывающее меню операций Ctrl + V для Mac. Например если вы хотите закомитить изменения.
Во вкладке Log, с права внизу вы можете двойным щелчком открыть измененный файл и увидеть конкретные изменения в ним. Зелененьким отмечено, то что добавилось.
Аннотации позволяют видеть кто и когда поменял каждую конкретную строку кода. Аннотации доступны из тех же трех вариантов меню: всплывающее (Ctrl + V для Mac), контекстное (правой кнопкой) и основное меню VCS на панели.
Вы можете настроить список игнорируемых файлов. Например используя кнопку Show ignored files в Changes
В Git помощью IDEA вы можете создавать, переключаться, объединять, сравнивать и удалять ветви кода. Чтобы увидеть список существующих ветвей или создать новую, используйте либо Branches из главного или контекстного меню, или всплывающее меню VCS operations, или элемент управления на правой стороне панели статуса. (Пункт взят с ссылка )
Patche позволяет вам сохранить набор изменений в виде файла, который можно передать по электронной почте и потом применить к коду. Это полезно если вы работаете удаленно, без постоянного подключения к системе контроля версий, но все равно должны передавать ваши изменения другим членам проекта. (информация с ссылка )
Это можно сделать кликнув правой кнопкой мыши по измененному файлу в разделе Changes и выбрать Create Patch.
Затем вы можете поставить галочки напротив конкретных файлов, которые хотите сохранить в файл.
Руководство пользователя IntelliJ IDEA. Основы работы с системами контроля версий
Основы работы с системами контроля версий
Получить ваш проект из системы контроля версий
Чтобы импортировать ваш проект из системы контроля версий, нажмите кнопку Check out from Version Control на Welcome screen (приветственное окно IDEA), или в меню VCS (система контроля версий) на главной панели меню.
Если в вашем проекте есть файлы настройки сборки для Maven или Gradle, IntelliJ IDEA предложит вам использовать их для конфигурации.
Настройки системы контроля версий
Настройки системы контроля версий вашего проекта доступны в меню Settings → Version Control. Вы можете выбрать любую из директорий вашего проекта в качестве корневой для используемой вами системы контроля версий, а также поменять этот выбор в любое время. Также вы можете в любой момент отключить контроль версий.
Также, вы можете разные директории вашего проекта хранить в разных системах контроля версий, IntelliJ IDEA позволяет вам проводить все операции над ними одинаково.
Окно инструментов «изменения» и списки изменений
После того как вы подключили систему контроля версий на вашем проекте, вы можете видеть и управлять локальными изменениями с помощью окна инструментов Changes. Чтобы быстро его открыть, нажмите Alt + 9 (Cmd + 9 для Mac).
Чтобы упростить управление изменениями, все они организованы в списки изменений которые вы можете создавать, удалять и делать активными.
Всплывающее меню операций системы контроля версий
Если вам нужно запустить какую-то операцию системы контроля версий для выделенного файла, директории или даже для всего проекта, используйте всплывающее меню VCS operations по сочетанию клавиш Alt + Back Quote (одиночная левая кавычка, символ ‘) (Ctrl + V для Mac).
Отображение истории изменений
История изменений для файлов или директорий вашего проекта доступна из меню VCS operations, или из главной панели меню VCS → → Show History, или из контекстного меню → Show History.
Чтобы посмотреть изменения для конкретного фрагмента кода, используйте пункт Show History for Selection.
Аннотации
Аннтоации доступны как из всплывающего меню, так и из главного и контекстного меню. Они позволяют вам видеть кто и когда поменял каждую конкретную строку кода.
Вызвав панель аннотаций, вы увидете детальную информацию о соответствующем коммите.
Полезные клавиатурные сочетания
Варианты сохранения изменений
Когда вы добавляете ваши изменения в систему контроля версий, IntelliJ IDEA позволяет вам производить самые разные операции: поменять список изменений в который вы их добавляете, объеденить изменения с уже добавленными, используя Amend commit, переформатировать измененный код, оптимизировать импорты, убедиться что инспекция кода не выдает никаких предупреждений, обновить информацию о копирайте, или даже загрузить ваши изменения на удаленный ftp сервер.
Игнорируемые файлы
Настроить список игнорируемых файлов можно в меню Settings → Version Control, или с помощью соответствующей кнопки в окне инструментов Changes.
Текущий список игнорируемых файлов можно увидеть в окне инструментов Changes рядом со списками изменений, нажав соответствующую кнопку.
Ветви
С помощью IntelliJ IDEA вы можете легко создавать, переключаться, объединять, сравнивать и удалять ветви кода. (только в Git и Mercurial). Чтобы посмотреть список существующих ветвей или создать новую, используйте либо Branches из главного или контекстного меню, или всплывающее меню VCS operations, или элемент управления на правой стороне панели статуса.
Для разных систем контроля версий IntelliJ IDEA производит все операции одновременно, так что вы не должны переключаться между ними.
Shelves, stashes, и patches
Меню Shelves и Stashes помогает вам спрятать некоторые локальные изменения без добавления их в систему контроля версий. Нужно это для того, чтобы переключиться на ту версию файлов что хранится в системе контроля версий и потом иметь возможность вернуться назад к вашим локальным изменениям. Различаются они тем, что Shelves поддерживается самой IntelliJ IDEA и хранятся они локально у вас, а Stashes хранятся в системе контроля версий. Patches позволяет вам сохранить некоторый набор изменений в виде файла, который можно передать по электронной почте или выложить на общедоступный диск и потом применить к коду. Это полезно если вы работаете удаленно, без постоянного подключения к системе контроля версий, но все равно должны передавать ваши изменения другим членам проекта.
Чтобы посмотреть полный список изменений, добавленных в систему контроля версий, отсортированный и отфильтрованый по ветви кода, имени пользователя, дате, папке или даже фразе в описании, откройте вкладку Log в окне инструментов Changes. Это простейший способ найти нужный вам набор изменений, или изучить историю изменений.
Оригинал статьи
Undo IntelliJ Smart Checkout
IntelliJ has a feature that’s very cool in theory, called Smart Checkout. This feature kicks in when you’re changing branches and you have files in the current branch that you’ve modified but haven’t committed.
Instead of forcing you to commit, stash or shelve your changes, it stashes them for you, switches branches, then runs stash pop in the new branch.
I guess this is what you’d want sometimes, but I ran this when switching to the wrong branch.
So, now my master branch is all full of changes that belong in another branch, some files are reporting merge conflicts, and I have all kinds of pain.
What I want to accomplish is:
Is there a way to do this?
2 Answers 2
The way IntelliJ does this is by using stash in the branch you’re presently in, and then using stash pop in the branch you’re switching to.
When the changes are stashed, they get put onto a stack of stashed changes, at the top. Then, when stash pop runs, those changes are popped off the stack and applied.
At least, in most cases, that’s what happens. If there’s a merge conflict, however, IntelliJ informs you of such and the stash is kept. You can see the stack of stashes by running:
Then, if all is well, you can remove the stash with:
Since this answer is pretty rough and only covers one situation, I’m marking it as a community wiki. Improvements very much welcome.
Manage Git branches
In Git, branching is a powerful mechanism that allows you to diverge from the main development line, for example, when you need to work on a feature, or freeze a certain state of a code base for a release, and so on.
In IntelliJ IDEA, all operations with branches are performed in the Git Branches popup: To invoke it, click the Git widget in the Status bar (it shows the name of the branch that is currently checked out):
You can also manage branches and perform batch operations with multiple branches in the Branches pane of the Git tool window.
Mark branches as favorites
If you have many branches, you may want to see only your favorite ones. The master branch is marked as a favorite by default. Favorite branches are always displayed at the top of the Branches popup and in the Branches pane of the Git tool window.
To mark a branch as a favorite, in the Branches popup, hover the mouse cursor over the branch name, and click the star outline that appears on the left:
To hide non-favorite branches, click Show Only Favorites at the bottom of the Branches popup.
Create new branch
Create a new branch from current branch
In the dialog that opens, specify the branch name, and make sure the Checkout branch option is selected if you want to switch to that branch.
The new branch will start from the current branch HEAD.
Create a new branch from selected branch
In the dialog that opens, specify the branch name, and make sure the Checkout branch option is selected if you want to switch to that branch.
Create a new branch from selected commit
In the Log view, select the commit that you want to act as a starting point for the new branch and choose New Branch from the context menu.
In the dialog that opens, specify the branch name, and make sure the Checkout branch option is selected if you want to switch to that branch.
Check out branches (git-checkout)
Check out a branch as a new local branch
If you want to work on a branch created by someone else, you need to check it out to create a local copy of that branch.
Choose Checkout from the list of actions.
The new local branch will be set to track the origin remote branch.
Switch between branches
When multitasking, you often need to jump between branches to commit unrelated changes.
In the Branches popup or in the Branches pane of the Git tool window, select the branch that you want to switch to under Local Branches and choose Checkout from the list of available operations.
What happens next depends on whether there are conflicts between your local changes that you have not committed yet, and the branch that you are going to check out:
If your working tree is clean (that means you have no uncommitted changes), or your local changes do not conflict with the specified branch, this branch will be checked out (a notification will pop up in the bottom-right corner of the IntelliJ IDEA window).
If you want to clean your working copy using stash instead of shelve, go to the Version Control | Git page of the IDE settings Ctrl+Alt+S and choose Shelve under the Clean working tree using setting.
Compare branches
Compare a branch with the current branch
If you want to check how a branch has diverged from the current branch, you can compare them.
A new tab will be added to the Git tool window listing all commits that exist in the selected branch and do not exist in the current branch.
You can click the Swap Branches link to change which branch is considered as a base against which you are comparing the other branch.
To see a list of all files that are different in the two branches, click Ctrl+A : the Changed Files pane will list all files that contain differences.
Compare a branch with the working tree
Apart from comparing a branch with the current branch, you can compare it against the local state of the current branch. This is useful if you have local uncommited changes.
The dialog that opens shows a list of all files that are different in the selected branch compared with the branch that is currently checked out:
Files that exist in the selected branch and are missing in the current branch are marked with grey.
Files that exist in the current branch but are missing in the selected branch are marked with green.
Files that contain differences between the selected and the current branch are marked with blue.
You can click the Swap Branches link to change which branch is considered as a base against which you are comparing the other branch.
Delete branches
After you have integrated the changes from a feature branch into the main line of development, you can delete the branch you do not need anymore.
Check out a branch that you are going to use for further work.
After you have deleted a branch, a notification will be displayed in the bottom-right corner from which you can restore the deleted branch:
If the deleted branch was tracking a remote branch, there will also be a link in this notification to remove the remote branch.
If you’ve closed the notification and later decide you want to restore a deleted branch, the link will be available in the Event Log until you restart IntelliJ IDEA.
Configure synchronous branch control
If you have a multi-rooted repository, you can configure IntelliJ IDEA to perform all branch operations (such as checkout, merge, delete, and so on) simultaneously on all roots as if it were a single repository. If an operation fails at least in one of the repositories, IntelliJ IDEA prevents branches from diverging by suggesting you to roll back this operation in the repositories where it was successful.
Select the Execute branch operations on all roots option (note that this option is only available if your project has multiple roots).
What does Smart Checkout in IDE Intellij IDEA’s tool Version Control do?
My project is using git as vcs tool. This question is about the integrated Version Control tool. In development,our branch promise is:
1 Answer 1
The Intellij idea help page mentions the following about switching between branches:
When multitasking, you often need to jump between branches to commit unrelated changes.
In the Branches popup or in the Branches pane of the Git tool window, select the branch that you want to switch to under Local Branches and choose Checkout from the list of available operations.
What happens next depends on whether there are conflicts between your local changes that you have not committed yet, and the branch that you are going to check out:
If your working tree is clean (that means you have no uncommitted changes), or your local changes do not conflict with the specified branch, this branch will be checked out (a notification will pop up in the bottom-right corner of the IntelliJ IDEA window).
If your local changes are going to be overwritten by checkout, IntelliJ IDEA displays a list of files that prevent you from checking out the selected branch, and suggests choosing between Force Checkout and Smart Checkout.
If you click Force Checkout, your local uncommitted changes will be overwritten, and you will lose them.
If you click Smart Checkout, IntelliJ IDEA will shelve uncommitted changes, check out the selected branch, and then unshelve the changes. If a conflict occurs during the unshelve operation, you will be prompted to merge the changes.